Berkeley Compatibility Library (libbsd.a)
	  Reentrant Library (libc_r.a)

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


     PARAMETERS
	  seed	    Specifies an initial seed value.

	  seedptr   Points to a	seed value, updated at each call.

	  randval   Points to a	place to store the random number.


     DESCRIPTION
	  The rand() function returns successive pseudo-random numbers
	  in the range from 0 (zero) to	RAND_MAX.  The sequence	of
	  values returned depends on the seed value set	with the
	  srand() function.  If	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.

	  The rand_r() function	is the reentrant version of the	rand()
	  function, for	use with multi-threaded	applications.  The
	  rand_r() function places the seed value at the address
	  pointed to by	seedptr, and places the	random number at the
	  address pointed to by	randval.

	  The srand() function resets the random-number	generator to a
	  random starting point. The generator is initially seeded
	  with a value of 1.

	  The rand() function is a very	simple random-number genera-
	  tor. Its spectral properties,	the mathematical measurement
	  of how random	the number sequence is,	are somewhat weak.

	  See the drand48() and	random() functions for more elaborate
	  random-number	generators that	have better spectral proper-
	  ties.

     NOTES
	  The rand() function is not supported for multi-threaded
	  applications.	 Instead, its reentrant	equivalent rand_r()
	  should be used with multiple threads.

	  The BSD version of the rand()	function returns a number in
	  the range 0 to  $ 2 sup 31 $ - 1, rather than	0 to $ 2 sup
	  15 $ - 1, and	can be used by compiling with the Berkeley
	  Compatibility	Library	(libbsd.a).

	  There	are better random number generators, as	noted above;
	  however, the rand() and srand() functions are	the interfaces
	  defined for the ANSI C library.

	  The following	functions define the semantics of the rand()
	  and srand() functions, and are included here to facilitate
	  porting applications from different implementations:
	       static unsigned int next	= 1;
	       int rand(  )
	       {
		    next = next	* 1103515245 + 12345;
		    return (  (next >>16) & RAND_MAX);
	       }
	       void srand (seed)
	       int seed;
	       {
	       next = seed
	       }


	  AES Support Level:
			 Full use (rand(), srand())


     RETURN VALUES
	  The rand() function returns the next pseudo-random number in
	  the sequence.

	  Upon successful completion, the rand_r() function returns a
	  value	of 0 (zero).  Otherwise, -1 is returned	and errno is
	  set to indicate the error.

	  The srand() function returns no value.

     ERRORS
	  If the rand_r() function fails, errno	may be set to the fol-
	  lowing value:


	  [EINVAL]  Either seedptr or randval is a null	pointer.
		    delim off


     RELATED INFORMATION
	  Functions: drand48(3), random(3)


Acknowledgement and Disclaimer