Newer
Older
Scratch / mobius / src / libc / stdlib / rand.c
@Christopher W. Olsen Christopher W. Olsen on 25 Oct 2019 708 bytes Scratch
unsigned long _seed;
/*****************************************************************************
*****************************************************************************/

//! Returns a pseudo-random number.
/*!
 *	The number returned by rand() in fact follows a complex series and should
 *		not be used when a completely random number is needed.
 *
 *	Use srand() to seed the random number generator; each random number seed 
 *		produces a reproducible random number sequence.
 *	\return	A pseudo-random number.
 */
long rand(void) /* stdlib.h */
{
	if(_seed == 0)
		_seed = 1;
	if((((_seed << 3) ^ _seed) & 0x80000000L) != 0)
		_seed = (_seed << 1) | 1;
	else
		_seed <<= 1;
	return _seed - 1;
}