ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/trunk/mdtools/headers/sprng.h
Revision: 250
Committed: Mon Jan 27 22:12:57 2003 UTC (21 years, 5 months ago) by chuckv
Content type: text/plain
File size: 2083 byte(s)
Log Message:
More bug fixes... Forgot to build sprng

File Contents

# User Rev Content
1 chuckv 217 #ifndef _sprng_h_
2     #define _sprng_h_
3    
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    
12 chuckv 250 #include "sprng_interface.h"
13 chuckv 217
14     #define SPRNG_DEFAULT 0
15     #define CRAYLCG 0
16     #define DRAND48 1
17     #define FISH1 2
18     #define FISH2 3
19     #define FISH3 4
20     #define FISH4 5
21     #define FISH5 6
22     #define LECU1 0
23     #define LECU2 1
24     #define LECU3 2
25     #define LAG1279 0
26     #define LAG17 1
27     #define LAG31 2
28     #define LAG55 3
29     #define LAG63 4
30     #define LAG127 5
31     #define LAG521 6
32     #define LAG521B 7
33     #define LAG607 8
34     #define LAG607B 9
35     #define LAG1279B 10
36    
37     #define CHECK 1
38    
39     #define MAX_PACKED_LENGTH 24000
40    
41     #ifdef USE_MPI
42     #define MPINAME(A) A ## _mpi
43     #else
44     #define MPINAME(A) A
45     #endif
46    
47     #define make_sprng_seed MPINAME(make_new_seed)
48    
49     #if defined(SIMPLE_SPRNG)
50    
51     #define pack_sprng pack_rng_simple
52     #define unpack_sprng unpack_rng_simple
53     #define isprng MPINAME(get_rn_int_simple)
54     #define init_sprng MPINAME(init_rng_simple)
55     #define print_sprng print_rng_simple
56    
57     #ifdef FLOAT_GEN
58     #define sprng MPINAME(get_rn_flt_simple)
59     #else
60     #define sprng MPINAME(get_rn_dbl_simple)
61     #endif
62    
63     #elif !defined(CHECK_POINTERS)
64    
65     #define free_sprng free_rng
66     #define pack_sprng pack_rng
67     #define unpack_sprng unpack_rng
68     #define isprng get_rn_int
69     #define spawn_sprng(A,B,C) spawn_rng(A,B,C,!CHECK)
70     #define init_sprng init_rng
71     #define print_sprng print_rng
72    
73     #ifdef FLOAT_GEN
74     #define sprng get_rn_flt
75     #else
76     #define sprng get_rn_dbl
77     #endif
78    
79     #else
80    
81     #define free_sprng(A) ((deleteID(A)==NULL) ? -1 : free_rng(A))
82     #define pack_sprng(A,B) ((checkID(A)==NULL) ? 0 : pack_rng(A,B))
83     #define unpack_sprng(A) addID(unpack_rng(A))
84     #define isprng(A) ((checkID(A)==NULL) ? -1 : get_rn_int(A))
85     #define spawn_sprng(A,B,C) ((checkID(A)==NULL) ? 0 : spawn_rng(A,B,C,CHECK))
86     #define init_sprng(A,B,C,D,E) addID(init_rng(A,B,C,D,E))
87     #define print_sprng(A) ((checkID(A)==NULL) ? 0 : print_rng(A))
88    
89     #ifdef FLOAT_GEN
90     #define sprng(A) ((checkID(A)==NULL) ? -1.0 : get_rn_flt(A))
91     #else
92     #define sprng(A) ((checkID(A)==NULL) ? -1.0 : get_rn_dbl(A))
93     #endif
94    
95     #endif
96    
97     #endif