]> git.uio.no Git - u/mrichter/AliRoot.git/blame - MINICERN/mathlib/gen/v/rn32.F
Bugfix in AliPoints2Memory
[u/mrichter/AliRoot.git] / MINICERN / mathlib / gen / v / rn32.F
CommitLineData
fe4da5cc 1*
2* $Id$
3*
4* $Log$
5* Revision 1.1.1.1 1996/04/01 15:02:54 mclareni
6* Mathlib gen
7*
8*
9#include "gen/pilot.h"
10#if !defined(CERNLIB_VAX)||defined(CERNLIB_FORTRAN)
11 FUNCTION RN32(IDUMMY)
12#if defined(CERNLIB_CRAY)
13CDIR$ INTEGER=64
14#endif
15C MACHINE-INDEPENDENT RANDOM NUMBER GENERATOR
16C PRODUCES UNIFORMLY-DISTRIBUTED FLOATING-PT.
17C NUMBERS BETWEEN ZERO AND ONE.
18C IDENTICAL SEQUENCE ON ALL MACHINES OF .GE. 32 BITS.
19C UNIVERSAL VERSION, F.JAMES, 1985
20C IY IS THE SEED,
21C CONS IS 2**-31
22C MASK31 IS 17777777777 OCTAL
23 PARAMETER (CONS=4.6566128730774E-10, MASK31=2147483647)
24CSELF,IF=-IBM. CERN EDITLIB+SIEMENS COMPILER PROBLEM.
25 SAVE IY
26CSELF.
27 DATA IY/65539/
28 IY = IY * 69069
29C KEEP ONLY LOWER 31 BITS
30 IY = IAND (IY, MASK31)
31C SET LOWER 8 BITS TO ZERO TO ASSURE EXACT FLOAT
32 JY = IY /256 *256
33 RN32 = CONS*JY
34 RETURN
35C ENTRY TO INPUT SEED
36 ENTRY RN32IN (IDUMMY)
37 IY = IDUMMY
38 RN32IN = 0.
39 RETURN
40C ENTRY TO OUTPUT SEED
41 ENTRY RN32OT (IDUMMY)
42 IDUMMY = IY
43 RN32OT = 0.
44 RETURN
45 END
46#endif