4 * This source code is part of
8 * GROningen MAchine for Chemical Simulations
12 * Copyright (c) 1991-1999
13 * BIOSON Research Institute, Dept. of Biophysical Chemistry
14 * University of Groningen, The Netherlands
17 * GROMACS: A message-passing parallel molecular dynamics implementation
18 * H.J.C. Berendsen, D. van der Spoel and R. van Drunen
19 * Comp. Phys. Comm. 91, 43-56 (1995)
21 * Also check out our WWW page:
22 * http://md.chem.rug.nl/~gmx
27 * Green Red Orange Magenta Azure Cyan Skyblue
29 static char *SRCID_rando_c
= "$Id$";
37 return (int)(((long)time(NULL
)+(long)getpid()) % (long)65536);
41 /* generate a random number. */
46 real rm
= 100000000.0; /* same number as m, but real format */
51 int irandh
,irandl
,multh
,multl
;
55 /* multiply irand by mult, but take into account that overflow
56 * must be discarded, and do not generate an error.
62 irand
= ((irandh
*multl
+irandl
*multh
) % m1
) * m1
+ irandl
*multl
;
63 irand
= (irand
+ 1) % m
;
65 /* convert irand to a real random number between 0 and 1. */
68 if ((r
<= 0) || (r
> 1))