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