From d969f81a55e6dec36b0e5ff62162f75a90a93431 Mon Sep 17 00:00:00 2001 From: Robert Izzard <r.izzard@surrey.ac.uk> Date: Wed, 11 Dec 2019 17:07:10 +0000 Subject: [PATCH] default to mersenne twister for random numbers when ieee754 and hence drand48 are not available e.g. on Mac updates to fix format statements when using mersenne twister --- src/binary_c_code_options.h | 7 +++++-- src/evolution/initialize_parameters.c | 6 ++++-- src/maths/random_number.c | 4 ++-- src/setup/version.c | 2 +- 4 files changed, 12 insertions(+), 7 deletions(-) diff --git a/src/binary_c_code_options.h b/src/binary_c_code_options.h index 7e0569410..91670ecbd 100644 --- a/src/binary_c_code_options.h +++ b/src/binary_c_code_options.h @@ -941,9 +941,12 @@ void Print_trace(void); * * Only one should be defined. */ +#ifdef __HAVE_DRAND48_R__ #define USE_DRAND48_R -//#define USE_MERSENNE_TWISTER - +#else +/* use Mersenne twister as fallback */ +#define USE_MERSENNE_TWISTER +#endif /* * Random number setup based on the diff --git a/src/evolution/initialize_parameters.c b/src/evolution/initialize_parameters.c index a51fd0182..933d33b3e 100644 --- a/src/evolution/initialize_parameters.c +++ b/src/evolution/initialize_parameters.c @@ -37,12 +37,14 @@ void initialize_parameters(struct stardata_t * RESTRICT const stardata) if(stardata->preferences->cmd_line_random_seed!=0) { common->random_seed = stardata->preferences->cmd_line_random_seed; - Dprint("random_seed from cmd line %ld\n",common->random_seed); + Dprint("random_seed from cmd line %ld\n", + (long int)common->random_seed); } else if(common->random_seed!=0) { common->random_seed = random_seed(); - Dprint("random_seed from random_seed() %ld\n",common->random_seed); + Dprint("random_seed from random_seed() %ld\n", + (long int)common->random_seed); } #ifdef RANDOM_SEED_LOG diff --git a/src/maths/random_number.c b/src/maths/random_number.c index 3c86de6ff..a4ce33909 100644 --- a/src/maths/random_number.c +++ b/src/maths/random_number.c @@ -78,11 +78,11 @@ double random_number(struct stardata_t * const stardata, if(unlikely(stardata->common.random_buffer.set == FALSE)) { Dprint( - "Set drand buffer from random_seed = %ld ",*random_seed); + "Set drand buffer from random_seed = %ld ",(long int)*random_seed); stardata->common.random_buffer.set = TRUE; #ifdef RANDOM_NUMBER_LOG Append_logstring(LOG_RANDOM, - "Randbuf=%ld ",*random_seed); + "Randbuf=%ld ",(long int)*random_seed); #endif // RANDOM_NUMBER_LOG stardata->common.random_buffer.count=0; diff --git a/src/setup/version.c b/src/setup/version.c index fb9c5c8ac..04b0615e5 100644 --- a/src/setup/version.c +++ b/src/setup/version.c @@ -282,7 +282,7 @@ void version(struct stardata_t * RESTRICT const stardata) (size_t)0, #endif//DISCS #ifdef USE_MERSENNE_TWISTER - sizeof(struct mersenne_twister_t), + sizeof(struct mersenne_twister_data_t), #else (size_t)0, #endif//USE_MERSENNE_TWISTER -- GitLab