ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/trunk/nano_mpi/src/headers/sprng_f.h
Revision: 4
Committed: Mon Jun 10 17:18:36 2002 UTC (22 years, 1 month ago) by chuckv
Content type: text/plain
File size: 4194 byte(s)
Log Message:
Import Root

File Contents

# Content
1
2
3 #ifndef _sprngf_h_
4
5 #define SPRNG_LFG 0
6 #define SPRNG_LCG 1
7 #define SPRNG_LCG64 2
8 #define SPRNG_CMRG 3
9 #define SPRNG_MLFG 4
10 #define SPRNG_PMLCG 5
11 #define DEFAULT_RNG_TYPE SPRNG_LFG
12
13 #define SPRNG_DEFAULT 0
14 #define CRAYLCG 0
15 #define DRAND48 1
16 #define FISH1 2
17 #define FISH2 3
18 #define FISH3 4
19 #define FISH4 5
20 #define FISH5 6
21 #define LECU1 0
22 #define LECU2 1
23 #define LECU3 2
24 #define LAG1279 0
25 #define LAG17 1
26 #define LAG31 2
27 #define LAG55 3
28 #define LAG63 4
29 #define LAG127 5
30 #define LAG521 6
31 #define LAG521B 7
32 #define LAG607 8
33 #define LAG607B 9
34 #define LAG1279B 10
35
36 #ifdef CHECK_POINTERS
37 #define CHECK 1
38 #else
39 #define CHECK 0
40 #endif /* ifdef CHECK_POINTERS */
41
42 #define MAX_PACKED_LENGTH 24000
43
44 #ifdef POINTER_SIZE
45 #if POINTER_SIZE == 8
46 #define SPRNG_POINTER integer*8
47 #else
48 #define SPRNG_POINTER integer*4
49 #endif
50 #else
51 #define SPRNG_POINTER integer*4
52 #endif /* ifdef POINTER_SIZE */
53
54 #ifdef USE_MPI
55 #define make_sprng_seed fseed_mpi
56 #else
57 #define make_sprng_seed fmake_new_seed
58 #endif
59
60 #endif /* ifdef _sprng_h */
61
62 #ifdef USE_MPI
63 external fseed_mpi
64 integer fseed_mpi
65 #else
66 external fmake_new_seed
67 integer fmake_new_seed
68 #endif
69
70 #ifndef DEFAULTINT
71 #define DEFAULTINT
72 #endif
73 #ifndef FLOAT_GEN
74 #define DBLGEN
75 #endif
76
77 #if defined(SIMPLE_SPRNG)
78 #undef DEFAULTINT
79
80 #ifndef _sprngf_h_
81 #define pack_sprng fpack_rng_simple
82 #define unpack_sprng funpack_rng_simple
83 #ifdef USE_MPI
84 #define isprng fget_rn_int_simmpi
85 #define init_sprng finit_rng_simmpi
86 #else
87 #define isprng fget_rn_int_sim
88 #define init_sprng finit_rng_sim
89 #endif /* ifdef USE_MPI */
90 #define print_sprng fprint_rng_simple
91
92 #if defined(FLOAT_GEN) && defined(USE_MPI)
93 #define sprng fget_rn_flt_simmpi
94 #endif
95 #if defined(FLOAT_GEN) && !defined(USE_MPI)
96 #define sprng fget_rn_flt_sim
97 #endif
98 #if defined(DBLGEN) && defined(USE_MPI)
99 #define sprng fget_rn_dbl_simmpi
100 #endif
101 #if defined(DBLGEN) && !defined(USE_MPI)
102 #define sprng fget_rn_dbl_sim
103 #endif
104
105 #endif /* ifdef _sprng_h */
106 external isprng
107 external fget_rn_dbl_sim, fget_rn_flt_sim
108 external init_sprng, fpack_rng_simple
109 external funpack_rng_simple, fprint_rng_simple
110 #ifdef USE_MPI
111 external fget_rn_flt_simmpi, fget_rn_dbl_simmpi
112 real*4 fget_rn_flt_simmpi
113 real*8 fget_rn_dbl_simmpi
114 #endif
115 integer isprng,fpack_rng_simple,fprint_rng_simple
116 SPRNG_POINTER init_sprng, funpack_rng_simple
117 real*4 fget_rn_flt_sim
118 real*8 fget_rn_dbl_sim
119 #endif
120
121 #if defined(CHECK_POINTERS)
122 #undef DEFAULTINT
123 external fget_rn_int_ptr, fget_rn_flt_ptr, fget_rn_dbl_ptr
124 external fspawn_rng_ptr, ffree_rng_ptr, finit_rng_ptr
125 external fpack_rng_ptr, funpack_rng_ptr, fprint_rng_ptr
126
127 integer fget_rn_int_ptr, ffree_rng_ptr, fpack_rng_ptr
128 SPRNG_POINTER finit_rng_ptr, funpack_rng_ptr
129 integer fspawn_rng_ptr, fprint_rng_ptr
130 real*4 fget_rn_flt_ptr
131 real*8 fget_rn_dbl_ptr
132
133 #ifndef _sprngf_h_
134 #define isprng fget_rn_int_ptr
135 #define free_sprng ffree_rng_ptr
136 #define spawn_sprng(A,B,C) fspawn_rng_ptr(A,B,C,CHECK)
137 #define pack_sprng fpack_rng_ptr
138 #define unpack_sprng funpack_rng_ptr
139 #define init_sprng finit_rng_ptr
140 #define print_sprng fprint_rng_ptr
141 #ifdef FLOAT_GEN
142 #define sprng fget_rn_flt_ptr
143 #else
144 #define sprng fget_rn_dbl_ptr
145 #endif
146 #endif
147 #endif
148
149 #if defined(DEFAULTINT)
150 external fget_rn_int, fget_rn_flt, fget_rn_dbl
151 external fspawn_rng, ffree_rng, finit_rng
152 external fpack_rng, funpack_rng, fprint_rng
153
154 integer fget_rn_int, ffree_rng, fpack_rng
155 SPRNG_POINTER finit_rng, funpack_rng
156 integer fspawn_rng, fprint_rng
157 real*4 fget_rn_flt
158 real*8 fget_rn_dbl
159
160 #ifndef _sprngf_h_
161 #define isprng fget_rn_int
162 #define free_sprng ffree_rng
163 #define spawn_sprng(A,B,C) fspawn_rng(A,B,C,CHECK)
164 #define pack_sprng fpack_rng
165 #define unpack_sprng funpack_rng
166 #define init_sprng finit_rng
167 #define print_sprng fprint_rng
168 #ifdef FLOAT_GEN
169 #define sprng fget_rn_flt
170 #else
171 #define sprng fget_rn_dbl
172 #endif
173 #endif
174
175 #endif
176
177
178
179 #ifndef _sprngf_h_
180 #define _sprngf_h_
181 #endif