5 * Revision 1.1.1.1 1996/02/15 17:50:22 mclareni
11 C CERN PROGLIB# V104 RNDM .VERSION KERNIRT 1.06 930811
12 C ORIG. 22-MAR-88 from IBM version of G.Marsaglia et al., Montreal
14 C !!! Version valid only for 32 bit machines !!!
15 C !!! with IEEE floating point representation !!!
17 C- Uniform Random Number Generator,
18 C- giving the same sequence as the IBM and VAX version
20 EQUIVALENCE (AMAN,MANT)
21 PARAMETER (MSK1 = 25165824)
22 PARAMETER (MSK2 = 855638016)
23 C PARAMETER (MSK1 = '0C000000'X)
24 C PARAMETER (MSK2 = '33000000'X)
28 #if !defined(CERNLIB_QISASTD)
29 #include "kerngen/q_andor.inc"
30 #include "kerngen/q_shift.inc"
35 #if defined(CERNLIB_QISASTD)
36 MANT = ISHFT (MCGN,-8)
38 #if !defined(CERNLIB_QISASTD)
39 MANT = ISHFTR(MCGN, 8)
41 IF (MANT.EQ.0) GO TO 14
43 C- AMAN in the range 1 to 2**24-1
45 C- multiply by 2.**(-24)
49 C-- for zero set RNDM = 2.**(-25)
50 14 RNDM = 0.29802322387695312E-07
54 C-- Integer random number
57 #if defined(CERNLIB_QISASTD)
58 IRNDM = ISHFT (MCGN,-1)
60 #if !defined(CERNLIB_QISASTD)
61 IRNDM = ISHFTR(MCGN, 1)