OpenMPI
0.1.1
Main Page
Related Pages
Modules
Data Structures
Files
File List
Globals
lran2.h
1
/* lran2.h
2
* by Wolfram Gloger 1996.
3
*
4
* A small, portable pseudo-random number generator.
5
*/
6
7
#ifndef _LRAN2_H
8
#define _LRAN2_H
9
10
#define LRAN2_MAX 714025l
/* constants for portable */
11
#define IA 1366l
/* random number generator */
12
#define IC 150889l
/* (see e.g. `Numerical Recipes') */
13
14
struct
lran2_st
{
15
long
x, y, v[97];
16
};
17
18
static
void
19
lran2_init(
struct
lran2_st
* d,
long
seed)
20
{
21
long
x;
22
int
j;
23
24
x = (IC - seed) % LRAN2_MAX;
25
if
(x < 0) x = -x;
26
for
(j=0; j<97; j++) {
27
x = (IA*x + IC) % LRAN2_MAX;
28
d->v[j] = x;
29
}
30
d->x = (IA*x + IC) % LRAN2_MAX;
31
d->y = d->x;
32
}
33
34
#ifdef __GNUC__
35
__inline__
36
#endif
37
static
long
38
lran2(
struct
lran2_st
* d)
39
{
40
int
j = (d->y % 97);
41
42
d->y = d->v[j];
43
d->x = (IA*d->x + IC) % LRAN2_MAX;
44
d->v[j] = d->x;
45
return
d->y;
46
}
47
48
#undef IA
49
#undef IC
50
51
#endif
lran2_st
Definition:
lran2.h:14
opal
mca
memory
linux
lran2.h
Generated on Wed Dec 24 2014 12:05:29 for OpenMPI by
1.8.8