File Coverage

xs/sandy_rng.h
Criterion Covered Total %
statement 2 8 25.0
branch 0 2 0.0
condition n/a
subroutine n/a
pod n/a
total 2 10 20.0


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__ */