Man Page shufrans.3m


     shufrans - random number shufflers


     cc [ flag ... ] file ...  -lsunmath -lm [ library ... ]

     #include <sunmath.h>

     void i_shufrans_(int *x, int *n, int *l, int *u);

     void u_shufrans_(unsigned *x, int *n, unsigned *l,  unsigned

     void r_shufrans_(float *x, int *n, float *l, float *u);

     void d_shufrans_(double *x, int *n, double *l, double *u);


     These  functions  shuffle  the  random  numbers  x[0],  ...,
     x[*n-1]  in  place.   The numbers may have been generated by
     any method but are assumed to be uniformly distributed  over
     the  interval  [*l,*u].   (If  any  number lies outside this
     interval, the results are undefined.)

     These routines use the method called "Algorithm B" by Knuth.
     They  use  an  internal  table of between 4 and 256 elements
     depending on *n.


     To shuffle 1000 double precision random numbers in [lb, ub]:

          double x[1000], lb, ub;
          int n = 1000;

          d_shufrans_(x, &n, &lb, &ub);


     addrans(3M), drand48(3C), lcrans(3M), mwcrans(3M), rand(3C),

     Knuth, Seminumerical Algorithms, 1981, Addison-Wesley.

     Park and Miller, Random Number  Generators:  Good  Ones  are
     Hard to Find, Communications of the ACM, October 1988.