float randf(oldval,factor) float *oldval, factor; { float crandom(),range, xlowb, upb, temp; range = 2.0 - (2.0 * factor); xlowb = *oldval - range; if(xlowb < -1.) xlowb = -1; upb = *oldval+range; if(upb > 1) upb = 1; temp = xlowb+(upb-xlowb)*((crandom(*oldval)+1)*.5); *oldval=temp; return (temp); } float crandom(x) float x; { int n; n=x*1048576.; return((float)((1061*n+221589) % 1048576)/1048576.); }