Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ rand(3C) — UnixWare 2.01

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

drand48(3C)






       rand(3C)                                                    rand(3C)


       NAME
             rand, rand_r, srand - simple random-number generator

       SYNOPSIS
             #include <stdlib.h>
             int rand(void);
             void srand(unsigned int seed);
             int rand_r(unsigned int *seed);

       DESCRIPTION
             rand uses a multiplicative congruent random-number generator
             with period 232 that returns successive pseudo-random numbers
             in the range from 0 to RAND_MAX (defined in stdlib.h).

             rand_r computes a sequence of pseudo-random integers in the
             range 0 to RAND_MAX.  If rand_r is called with the same
             initial value for seed and the value of seed is unchanged
             between successive returns and calls to rand_r, then the same
             sequence of random numbers are generated.

             The function srand uses the argument seed as a seed for a new
             sequence of pseudo-random numbers to be returned by subsequent
             calls to the function rand.  If the function srand is then
             called with the same seed value, the sequence of pseudo-random
             numbers will be repeated.  If the function rand is called
             before any calls to srand have been made, the same sequence
             will be generated as when srand is first called with a seed
             value of 1.

       REFERENCES
             drand48(3C)

       NOTICES
             The spectral properties of rand and rand_r are limited.
             drand48(3C) provides a much better, though more elaborate,
             random-number generator.

             Each thread that accesses one of the functions drand48,
             lrand48, mrand48, srand48, seed48, or lcong48 should be coded
             as per the following example:
                   mutex_lock(I_am_using_drand48);
                   value = FUNCTION();
                   mutex_unlock(I_am_using_drand48);
             where FUNCTION is one of those listed.  The same mutex must be
             used for all six functions.



                           Copyright 1994 Novell, Inc.               Page 1








Typewritten Software • bear@typewritten.org • Edmonds, WA 98026