* Generated by setuputil.sno setup.makeinclude() 04/30/2025 15:14:33
	RANDOM_DL = "random"
**=pea
**=sect NAME
**snobol4random \- SNOBOL4 random number functions
**
**=sect SYNOPSIS
**=code
**-INCLUDE 'random.sno'
**        SRANDOM(number)
**        SRANDOMDEV()
**        number = RANDOM()
**=ecode
**
**=sect DESCRIPTION
**B<The functions described in this manual page are not cryptographically secure.>
**
**The B<RANDOM()> function uses a non-linear additive feedback random
**number generator employing a default table of size 31 long integers to
**return successive pseudo-random numbers in the range from 0 to
**(2**31)-1.  The period of this random number generator is very large,
**approximately 16*((2**31)-1).
**=cut
	LOAD("RANDOM()INTEGER", RANDOM_DL)
**=pea
**=item B<SRANDOM()>
**takes its B<INTEGER> argument as the seed for a new sequence of
**pseudo-random numbers to be returned by B<RANDOM()>.  These sequences
**are repeatable by calling B<SRANDOM()> with the same seed value.
**B<RANDOM()> will by default produce a sequence of numbers that can be
**duplicated by calling B<SRANDOM()> with 1 as the seed.
**=cut
	LOAD("SRANDOM(INTEGER)STRING", RANDOM_DL)
**=pea
**=item B<SRANDOMDEV()>
**initializes a state array using the B<random>(4) random number device
**(if available) which returns good random numbers, suitable for
**cryptographic use.  Note that this particular seeding procedure can
**generate states which are impossible to reproduce by calling
**B<SRANDOM()> with any value, since the succeeding terms in the state
**buffer are no longer derived from the LC algorithm applied to a fixed
**seed.  Data from the B<random>(4) device may be precious, and repeated
**calls to B<SRANDOMDEV()> should be avoided.  When the B<random>(4)
**device is not available, a 32-bit seed will be generated using time,
**process id, and an element of the process stack.
**=cut
	LOAD("SRANDOMDEV()STRING", RANDOM_DL)
**=pea
**=sect SEE ALSO
**B<snobol4>(1), B<random>(3), B<random>(4).
**
**=sect AUTHORS
**Earl T. Cohen
**=break
**Jacob S. Rosenberg
**=break
**Philip L. Budne
*=cut
**************** end random.sno
