erand48_r man page on HP-UX

Man page or keyword search:  
man Server   10987 pages
apropos Keyword Search (all sections)
Output format
HP-UX logo
[printable version]

drand48(3C)							   drand48(3C)

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


   Obsolescent Interfaces

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

       In  the	following  description,	 the  formal   mathematical   notation
       [low,high) indicates an interval including low but not including high.

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

       and return nonnegative long integers  uniformly	distributed  over  the
       interval [0,2^31).

       and return signed long integers uniformly distributed over the interval

       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 are supplied automatically if or is
       called  without a prior call to an initialization entry point.)	and do
       not require an initialization entry point to be called first.

       All the routines work by generating a sequence of 48-bit	 integer  val‐
       ues, X[i], according to the linear congruential formula

	      X[n+1] = (a*X[n] + c) modulo m	    n>=0

       The parameter m = 2^48; hence 48-bit integer arithmetic is performed.

       Unless has been invoked, the default multiplier value a and the default
       addend value c are given by

	      a = 0x5DEECE66D (base 16) = 0273673163155 (base 8)
	      c = 0xB (base 16) = 013 (base 8)

       The value returned by any of the functions or is computed by first gen‐
       erating	the  next  48-bit  X[i] 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 X[i] and transformed into
       the returned value.

       The functions and store the last 48-bit X[i] generated in  an  internal
       buffer;	that  is  why they must be initialized prior to being invoked.
       The functions and require the calling program to	 provide  storage  for
       the  successive	X[i] 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
       initial value of X[i] into the array and pass it as  an	argument.   By
       using  different	 arguments, and allow separate modules of a large pro‐
       gram to generate several independent streams of pseudo-random  numbers;
       i.e.,  the  sequence  of	 numbers in each stream do 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 X[i] to the 32
       bits contained in its argument.	The low-order 16 bits of X[i] are  set
       to the arbitrary value 0x330E (base 16).

       The  initializer	 function  sets	 the value of X[i] to the 48-bit value
       specified in the argument array.	 In addition, the  previous  value  of
       X[i]  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  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 X[i] value, and then use this value to reini‐
       tialize via when the program is restarted.

       The initialization function allows the  user  to	 specify  the  initial
       X[i],  the  multiplier value a, and the addend value c.	Argument array
       elements param[0-2] specify X[i], 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 restores the default multiplier and addend
       values for a and c, specified above.

   Obsolescent Interfaces
       generate uniformly distributed pseudo-random numbers.

       and  are	 obsolescent  interfaces supported only for compatibility with
       existing DCE applications. New multithreaded  applications  should  use

       rand(3C), random(3M), thread_safety(5), random(7).


List of man pages available for HP-UX

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]
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