| line |
stmt |
bran |
cond |
sub |
pod |
time |
code |
|
1
|
|
|
|
|
|
|
#ifndef __GSL_RNG_H__ |
|
2
|
|
|
|
|
|
|
#define __GSL_RNG_H__ |
|
3
|
|
|
|
|
|
|
|
|
4
|
|
|
|
|
|
|
#include <stdlib.h> |
|
5
|
|
|
|
|
|
|
|
|
6
|
|
|
|
|
|
|
/* From gsl_math.h */ |
|
7
|
|
|
|
|
|
|
#ifndef M_PI |
|
8
|
|
|
|
|
|
|
# define M_PI 3.14159265358979323846264338328 /* pi */ |
|
9
|
|
|
|
|
|
|
#endif |
|
10
|
|
|
|
|
|
|
|
|
11
|
|
|
|
|
|
|
typedef struct |
|
12
|
|
|
|
|
|
|
{ |
|
13
|
|
|
|
|
|
|
const char *name; |
|
14
|
|
|
|
|
|
|
unsigned long int max; |
|
15
|
|
|
|
|
|
|
unsigned long int min; |
|
16
|
|
|
|
|
|
|
size_t size; |
|
17
|
|
|
|
|
|
|
void (*set) (void *state, unsigned long int seed); |
|
18
|
|
|
|
|
|
|
unsigned long int (*get) (void *state); |
|
19
|
|
|
|
|
|
|
double (*get_double) (void *state); |
|
20
|
|
|
|
|
|
|
} |
|
21
|
|
|
|
|
|
|
gsl_rng_type; |
|
22
|
|
|
|
|
|
|
|
|
23
|
|
|
|
|
|
|
typedef struct |
|
24
|
|
|
|
|
|
|
{ |
|
25
|
|
|
|
|
|
|
const gsl_rng_type * type; |
|
26
|
|
|
|
|
|
|
void *state; |
|
27
|
|
|
|
|
|
|
} |
|
28
|
|
|
|
|
|
|
gsl_rng; |
|
29
|
|
|
|
|
|
|
|
|
30
|
|
|
|
|
|
|
extern const gsl_rng_type *gsl_rng_ranlxd2; |
|
31
|
|
|
|
|
|
|
|
|
32
|
|
|
|
|
|
|
gsl_rng *gsl_rng_alloc (const gsl_rng_type * T); |
|
33
|
|
|
|
|
|
|
void gsl_rng_free (gsl_rng * r); |
|
34
|
|
|
|
|
|
|
|
|
35
|
|
|
|
|
|
|
void gsl_rng_set (const gsl_rng * r, unsigned long int seed); |
|
36
|
|
|
|
|
|
|
unsigned long int gsl_rng_max (const gsl_rng * r); |
|
37
|
|
|
|
|
|
|
unsigned long int gsl_rng_min (const gsl_rng * r); |
|
38
|
|
|
|
|
|
|
const char *gsl_rng_name (const gsl_rng * r); |
|
39
|
|
|
|
|
|
|
|
|
40
|
|
|
|
|
|
|
size_t gsl_rng_size (const gsl_rng * r); |
|
41
|
|
|
|
|
|
|
void * gsl_rng_state (const gsl_rng * r); |
|
42
|
|
|
|
|
|
|
|
|
43
|
|
|
|
|
|
|
static inline unsigned long int |
|
44
|
123872
|
|
|
|
|
|
gsl_rng_get (const gsl_rng * r) |
|
45
|
|
|
|
|
|
|
{ |
|
46
|
123872
|
|
|
|
|
|
return (r->type->get) (r->state); |
|
47
|
|
|
|
|
|
|
} |
|
48
|
|
|
|
|
|
|
|
|
49
|
|
|
|
|
|
|
static inline double |
|
50
|
0
|
|
|
|
|
|
gsl_rng_uniform (const gsl_rng * r) |
|
51
|
|
|
|
|
|
|
{ |
|
52
|
0
|
|
|
|
|
|
return (r->type->get_double) (r->state); |
|
53
|
|
|
|
|
|
|
} |
|
54
|
|
|
|
|
|
|
|
|
55
|
|
|
|
|
|
|
static inline double |
|
56
|
0
|
|
|
|
|
|
gsl_rng_uniform_pos (const gsl_rng * r) |
|
57
|
|
|
|
|
|
|
{ |
|
58
|
|
|
|
|
|
|
double x ; |
|
59
|
|
|
|
|
|
|
do |
|
60
|
|
|
|
|
|
|
{ |
|
61
|
0
|
|
|
|
|
|
x = (r->type->get_double) (r->state) ; |
|
62
|
|
|
|
|
|
|
} |
|
63
|
0
|
0
|
|
|
|
|
while (x == 0) ; |
|
64
|
|
|
|
|
|
|
|
|
65
|
0
|
|
|
|
|
|
return x ; |
|
66
|
|
|
|
|
|
|
} |
|
67
|
|
|
|
|
|
|
|
|
68
|
|
|
|
|
|
|
double gsl_ran_gaussian (const gsl_rng * r, const double sigma); |
|
69
|
|
|
|
|
|
|
double gsl_ran_gaussian_ratio_method (const gsl_rng * r, const double sigma); |
|
70
|
|
|
|
|
|
|
double gsl_ran_gaussian_pdf (const double x, const double sigma); |
|
71
|
|
|
|
|
|
|
double gsl_ran_ugaussian (const gsl_rng * r); |
|
72
|
|
|
|
|
|
|
double gsl_ran_ugaussian_ratio_method (const gsl_rng * r); |
|
73
|
|
|
|
|
|
|
double gsl_ran_ugaussian_pdf (const double x); |
|
74
|
|
|
|
|
|
|
|
|
75
|
|
|
|
|
|
|
#endif /* __GSL_RNG_H__ */ |