### Random number generator

The function rand() produces a sequence of pseudo-random numbers between 0 and 1 using an algorithm from P. L'Ecuyer and S. Cote, "Implementing a random number package with splitting facilities", ACM Transactions on Mathematical Software, 17:98-111 (1991).

         rand(0)     returns a pseudo random number in the open interval (0:1)
                     generated from the current value of two internal
                     32-bit seeds.
         rand(-1)    resets both seeds to a standard value.
         rand(x)     for integer 0 < x < 2^31-1 sets both internal seeds
                     to x.
         rand({x,y}) for integer 0 < x,y < 2^31-1 sets seed1 to x and
                     seed2 to y.