void randomdens( int n, REAL *x, REAL r1, REAL r2, REAL densty, int *seeds ) { /* ------------------------------------------------------------------ random generates a vector x[*] of random numbers in the range (r1, r2) with (approximate) specified density. seeds[*] must be initialized before the first call. ------------------------------------------------------------------ */ int i; REAL *y; y = (REAL *) malloc(sizeof(*y) * (n+1)); ddrand( n, x, 1, seeds ); ddrand( n, y, 1, seeds ); for (i = 1; i<=n; i++) { if (y[i] < densty) x[i] = r1 + (r2 - r1) * x[i]; else x[i] = 0.0; } free(y); }
void c_dd_rand(double *a) { dd_real aa; aa = ddrand(); TO_DOUBLE_PTR(aa, a); }