diff options
author | Thomas White <taw@physics.org> | 2021-07-21 14:12:19 +0200 |
---|---|---|
committer | Thomas White <taw@physics.org> | 2021-07-21 15:34:33 +0200 |
commit | d45d3e765011f99bd84bf52872590a4d8ff89ac7 (patch) | |
tree | a352a27520fd70dcc789177aae233e8da286db68 /libcrystfel/src | |
parent | 7e5536832b22036a634a74e16073b4762a416e29 (diff) |
Fix random_partiality()
Diffstat (limited to 'libcrystfel/src')
-rw-r--r-- | libcrystfel/src/geometry.c | 35 |
1 files changed, 17 insertions, 18 deletions
diff --git a/libcrystfel/src/geometry.c b/libcrystfel/src/geometry.c index e847711d..ff6d14c7 100644 --- a/libcrystfel/src/geometry.c +++ b/libcrystfel/src/geometry.c @@ -194,47 +194,46 @@ double gaussian_fraction(double rlow, double rhigh, double R) } +static void reseed(gsl_rng *rng) +{ + unsigned long int seed = gsl_rng_get(rng); + gsl_rng_set(rng, seed); +} + + static double random_partiality(signed int h, signed int k, signed int l, int serial) { gsl_rng *rng = gsl_rng_alloc(gsl_rng_mt19937); - unsigned long int seed; double p; int i; gsl_rng_set(rng, serial); - seed = gsl_rng_get(rng); - gsl_rng_set(rng, seed); + reseed(rng); for ( i=0; i<abs(h)+1; i++ ) { - seed = gsl_rng_get(rng); + gsl_rng_get(rng); } - gsl_rng_set(rng, seed); + reseed(rng); if ( h >= 0 ) { - seed = gsl_rng_get(rng); + reseed(rng); } - seed = gsl_rng_get(rng); - gsl_rng_set(rng, seed); for ( i=0; i<abs(k)+1; i++ ) { - seed = gsl_rng_get(rng); + gsl_rng_get(rng); } - gsl_rng_set(rng, seed); + reseed(rng); if ( k >= 0 ) { - seed = gsl_rng_get(rng); + reseed(rng); } - seed = gsl_rng_get(rng); - gsl_rng_set(rng, seed); for ( i=0; i<abs(l)+1; i++ ) { - seed = gsl_rng_get(rng); + gsl_rng_get(rng); } - gsl_rng_set(rng, seed); + reseed(rng); if ( l >= 0 ) { - seed = gsl_rng_get(rng); + reseed(rng); } - seed = gsl_rng_get(rng); - gsl_rng_set(rng, seed); p = gsl_rng_uniform(rng); gsl_rng_free(rng); |