DataMuseum.dk

Presents historical artifacts from the history of:

Commodore CBM-900

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about Commodore CBM-900

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download

⟦b948b41ea⟧ TextFile

    Length: 701 (0x2bd)
    Types: TextFile
    Notes: UNIX file
    Names: »rand.c«

Derivation

└─⟦f27320a65⟧ Bits:30001972 Commodore 900 hard disk image with partial source code
    └─⟦f4b8d8c84⟧ UNIX V7 Filesystem
        └─ ⟦this⟧ »libc/gen/rand.c« 

TextFile

/*
 * Random number generator, of period 2 ^ 32. Returns random numbers (ints) in
 *	the interval [0, 2^15-1].
 * The algorithm used is a linear congruential method, where the internal
 *	computation is done in unsigned longs (mod 2^32). The numbers from
 *	this sequence are right shifted 17 bits so that the most random 15
 *	bits are returned.
 * All this is from Knuth Vol 2, 2nd ed., ch 3. The choice of multiplier
 *	is made from the table in 3.3.4.E,  pp102.
 */

#define	A	1664525L		/* Multiplicative generator */
#define	C	907633387L		/* Additive generator */


static long	seed	= 1;

srand(n)
unsigned int n;
{
	seed = n;
}

rand()
{
	seed = seed * A + C;
	return ((seed >> 17) & 077777);
}