experimental/utility/LAGraph_Random.c
void LG_rand_xget64_f (void *z, const void *x)
{
    uint64_t seed = (uint64_t) (*((int64_t *) x)) ;
    uint64_t r =             LG_RAND_15 (seed) ; seed = LG_RAND_NEXT (seed) ;
    r = LG_RAND_15_MAX * r + LG_RAND_15 (seed) ; seed = LG_RAND_NEXT (seed) ;
    r = LG_RAND_15_MAX * r + LG_RAND_15 (seed) ; seed = LG_RAND_NEXT (seed) ;
    r = LG_RAND_15_MAX * r + LG_RAND_15 (seed) ; seed = LG_RAND_NEXT (seed) ;
    r = LG_RAND_15_MAX * r + LG_RAND_15 (seed) ; seed = LG_RAND_NEXT (seed) ;
    (*((double *) z)) = ((double) r) / ((double) UINT64_MAX) ; 
}
// z = f(x), where x is a random seed, and z is a double precision
// pseudo-random number constructed from the seed, in the range 0 to 1.
z = f(x), where x is a random seed, and z is a double precision
pseudo-random number constructed from the seed, in the range 0 to 1.
z = f ( x ) where x is a random seed and z is a double precision pseudo - random number constructed from the seed in the range 0 to 1 .
void LG_rand_xget64_f (void *z, const void *x)
{
    uint64_t seed = (uint64_t) (*((int64_t *) x)) ;
    uint64_t r =             LG_RAND_15 (seed) ; seed = LG_RAND_NEXT (seed) ;
    r = LG_RAND_15_MAX * r + LG_RAND_15 (seed) ; seed = LG_RAND_NEXT (seed) ;
    r = LG_RAND_15_MAX * r + LG_RAND_15 (seed) ; seed = LG_RAND_NEXT (seed) ;
    r = LG_RAND_15_MAX * r + LG_RAND_15 (seed) ; seed = LG_RAND_NEXT (seed) ;
    r = LG_RAND_15_MAX * r + LG_RAND_15 (seed) ; seed = LG_RAND_NEXT (seed) ;
    (*((double *) z)) = ((double) r) / ((double) UINT64_MAX) ; 
}
void LG_rand_xget64_f ( void * z , const void * x ) { uint64_t seed = ( uint64_t ) ( * ( ( int64_t * ) x ) ) ; uint64_t r = LG_RAND_15 ( seed ) ; seed = LG_RAND_NEXT ( seed ) ; r = LG_RAND_15_MAX * r + LG_RAND_15 ( seed ) ; seed = LG_RAND_NEXT ( seed ) ; r = LG_RAND_15_MAX * r + LG_RAND_15 ( seed ) ; seed = LG_RAND_NEXT ( seed ) ; r = LG_RAND_15_MAX * r + LG_RAND_15 ( seed ) ; seed = LG_RAND_NEXT ( seed ) ; r = LG_RAND_15_MAX * r + LG_RAND_15 ( seed ) ; seed = LG_RAND_NEXT ( seed ) ; ( * ( ( double * ) z ) ) = ( ( double ) r ) / ( ( double ) UINT64_MAX ) ; }
z = f(x), where x is a random seed, and z is a double precision
pseudo-random number constructed from the seed, in the range 0 to 1.
z = f ( x ) where x is a random seed and z is a double precision pseudo - random number constructed from the seed in the range 0 to 1 .