rndLCn¶
Purpose¶
Returns a matrix of standard normal (pseudo) random variables and the state of the random number generator.
Note
This function is deprecated–use rndn()–but remains for backward compatibility.
Format¶
-
{ y, newstate } =
rndLCn(r, c, state)¶ Parameters: - r (scalar) – row dimension.
- c (scalar) – column dimension.
- state (scalar or vector) –
scalar case
state = starting seed value only. System default values are used for the additive and multiplicative constants.The defaults are 1013904223, and 1664525, respectively. These may be changed with
rndconandrndmult.If state = -1, GAUSS computes the starting seed based on the system clock.
3x1 vector case
[1] the starting seed, uses the system clock if -1 [2] the multiplicative constant [3] the additive constant 4x1 vector case
state = the state vector returned from a previous call to one of therndLCrandom number generators.
Returns: - y (RxC matrix) – of standard normal random numbers.
- newstate (4x1 vector) –
[1] the updated seed [2] the multiplicative constant [3] the additive constant [4] the original initialization seed
Examples¶
state = 13;
n = 2000000000;
k = 1000000;
c = 0;
submean = {};
do while c < n;
{ y, state } = rndLCn(k, 1, state);
submean = submean | meanc(y);
c = c + k;
endo;
mean = meanc(submean);
print mean;
Remarks¶
r and c will be truncated to integers if necessary.
Technical Notes¶
The normal random number generator is based on the uniform random number generator, using the fast acceptance-rejection algorithm proposed by Kinderman, A.J. and J.G. Ramage, “Computer Generation of Normal Random Numbers,” Journal of the American Statistical Association, December 1976, Volume 71, Number 356, pp. 893-896. This algorithm calls the linear congruential uniform random number generator multiple times for each normal random number generated.
See rndLCu() for a description of the uniform random number generator algorithm.