lcong48 man page on Ultrix

Man page or keyword search:  
man Server   3690 pages
apropos Keyword Search (all sections)
Output format
Ultrix logo
[printable version]

drand48(3)							     drand48(3)

Name
       drand48,	 erand48,  lrand48, nrand48, mrand48, jrand48, srand48, seed48,
       lcong48 - generate uniformly distributed pseudo-random numbers

Syntax
       double drand48 ( )

       double erand48 (xsubi)
       unsigned short xsubi[3];

       long lrand48 ( )

       long nrand48 (xsubi)
       unsigned short xsubi[3];

       long mrand48 ( )

       long jrand48 (xsubi)
       unsigned short xsubi[3];

       void srand48 (seedval)
       long seedval;

       unsigned short ∗seed48 (seed16v)
       unsigned short seed16v[3];

       void lcong48 (param)
       unsigned short param[7];

Description
       NOTE: Your terminal may not be able to accurately  display  the	special
       math symbols in this reference page. See the ULTRIX Programmer's Manual,
       Unsupported for a complete description of the math symbols.

       This family of functions generates pseudo-random numbers using the well-
       known linear congruential algorithm and 48-bit integer arithmetic.

       Functions and return non-negative double-precision floating-point values
       uniformly distributed over the interval [0.0, 1.0).

       Functions and return non-negative long  integers	 uniformly  distributed
       over the interval [0, 231).

       Functions and return signed long integers uniformly distributed
       over the interval [−231, 231).

       Functions  and  are  initialization entry points, one of which should be
       invoked before either or is called.   Although  it  is  not  recommended
       practice, constant default initializer values will be supplied automati‐
       cally if or is called without a prior call to  an  initialization  entry
       point.  Functions and do not require an initialization entry point to be
       called first.

       All the routines work by generating a sequence of 48-bit integer values,
       Xi, according to the linear congruential formula

			   Xn+1 = (aXn+c)mod m	      n≥0.

       The  parameter  m=248;  hence  48-bit  integer  arithmetic is performed.
       Unless has been invoked, the multiplier value a and the addend  value  c
       are given by

	     a = 5DEECE66D16 = 2736731631558
	     c = B16 = 138.

       The  value returned by any of the functions or is computed by first gen‐
       erating the next 48-bit Xi in the sequence.  Then the appropriate number
       of  bits,  according to the type of data item to be returned, are copied
       from the high-order (leftmost) bits  of	Xi  and	 transformed  into  the
       returned value.

       The functions and store the last 48-bit Xi generated in an internal buf‐
       fer; that is why they must be initialized prior to being	 invoked.   The
       functions  and  require	the  calling program to provide storage for the
       successive Xi values in the array specified  as	an  argument  when  the
       functions  are  invoked.	  That	is why these routines do not have to be
       initialized.  The calling program merely has to place the  desired  ini‐
       tial  value  of	Xi into the array and pass it as an argument.  By using
       different arguments, functions and allow separate  modules  of  a  large
       program	to  generate  several independent streams of pseudo-random num‐
       bers.  That is, the sequence of numbers in each stream will  not	 depend
       upon  how  many	times the routines have been called to generate numbers
       for the other streams.

       The initializer function sets the high-order 32 bits of	Xi  to	the  32
       bits  contained in its argument.	 The low-order 16 bits of Xi are set to
       the arbitrary value 330E16.

       The initializer function sets the value of Xi to the 48-bit value speci‐
       fied  in	 the  argument array.  In addition, the previous value of Xi is
       copied into a 48-bit internal buffer, used only by and a pointer to this
       buffer is the value returned by This returned pointer, which can just be
       ignored if not needed, is useful if a program is to be restarted from  a
       given  point  at	 some future time — use the pointer to get at and store
       the last Xi value, and then use this value to reinitialize via when  the
       program is restarted.

       The  initialization  function allows the user to specify the initial Xi,
       the multiplier value a, and the addend value c. Argument array  elements
       param[0-2] specify Xi, param[3-5] specify the multiplier a, and param[6]
       specifies the 16-bit addend c. After has been called, a subsequent  call
       to either or will restore the ``standard'' multiplier and addend values,
       a and c, specified on the previous page.

Notes
       The source code for the portable version can even be used  on  computers
       which do not have floating-point arithmetic.  In such a situation, func‐
       tions and do not exist.	Instead, they are replaced by the two new func‐
       tions below.

       long irand48 (m)
       unsigned short m;

       long krand48 (xsubi, m)
       unsigned short xsubi[3], m;

       Functions  and  return  non-negative long integers uniformly distributed
       over the interval [0, m−1].

See Also
       rand(3)
       ULTRIX Programmer's Manual, Unsupported

								     drand48(3)
[top]

List of man pages available for Ultrix

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
...................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net