1 //---------------------------------------------------------------------
2 // This function is C verson of random number generator randdp.f
3 //---------------------------------------------------------------------
10 static double R23, R46, T23, T46;
11 double T1, T2, T3, T4;
39 /* Break A into two parts such that A = 2^23 * A1 + A2 and set X = N. */
46 /* Break X into two parts such that X = 2^23 * X1 + X2, compute
47 Z = A1 * X2 + A2 * X1 (mod 2^23), and then
48 X = 2^23 * Z + A2 * X2 (mod 2^46). */
54 T1 = A1 * X2 + A2 * X1;
59 T3 = T23 * Z + A2 * X2;