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

# User Rev Content
1 chuckv 4
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