Guardian Native C Library Calls Reference Manual (G06.28+, H06.05+)

lcong48(3) Guardian Native C Library Calls Reference Manual
NAME
lcong48 - Sets rule to generate uniformly distributed pseudorandom number sequences
LIBRARY
G-series native Guardian processes: $SYSTEM.SYSnn.ZCRTLSRL
G-series native OSS processes: /G/system/sysnn/zcrtlsrl
H-series native Guardian processes: $SYSTEM.ZDLLnnn.ZCRTLDLL
H-series OSS processes: /G/system/zdllnnn/zcrtldll
SYNOPSIS
#include <stdlib.h>
void lcong48(
unsigned short param[7]);
PARAMETERS
param Species an array that in turn species the initial X
i
, the multiplier value a, and
the addend value c.
DESCRIPTION
The lcong48() function initializes the random-number generator. Programs should invoke it
before calling the drand48( ), lrand48(),ormrand48() functions. (Although it is not recom-
mended practice, constant default initializer values are supplied automatically if the drand48( ),
lrand48(),ormrand48() functions are called without rst calling an initialization function.)
The erand48(), nrand48(), and jrand48() functions do not require that an initialization function
be called rst.
All the functions work by generating a sequence of 48-bit integer values, X
i
, according to the
linear congruential formula:
X
n+1
= (aX
n
+c)
mod m
n 0
The value of m equals 2 to the power 48; hence 48-bit integer arithmetic is performed. Unless
lcong48() has been invoked, the multiplier value a and the addend value c are given by
a = 5DEECE66D
16
= 273673163155
8
c = B
16
= 13
8
The lcong48() function species the initial X
i
value, the multiplier value a, and the addend value
c. The param array elements param[0-2] specify X
i
, param[3-5] specify the multiplier a, and
param[6] species the 16-bit addend c. After lcong48() has been called, a subsequent call to
either srand48() or seed48() restores the standard a and c values as specied previously.
NOTES
This function supports both IEEE Std 754-1985 oating-point and Tandem oating-point values
in the native environment. IEEE values can include NaN and innity, and the sign of 0.0 (zero)
can be either positive or negative. Refer to the fp_class(3) reference page for a description of
IEEE value classes.
Guardian functions are available to convert between oating-point formats. Refer to the Guar-
dian Programmers Guide for a discussion of oating-point conversions.
RETURN VALUES
The lcong48() function does not return a value.
RELATED INFORMATION
Functions: drand48(3), erand48(3), fp_class(3), isnan(3), jrand(3), lrand48(3), mrand48(3),
nrand(3), rand(3), seed48(3), srand48(3).
412 Hewlett-Packard Company 527192-007