From 4d2fefd75a57dfd6e60680eaf7408c82e15a025d Mon Sep 17 00:00:00 2001
From: AlexeyAB <alexeyab84@gmail.com>
Date: Thu, 17 Aug 2017 23:12:44 +0000
Subject: [PATCH] More usage rand_s()

---
 src/utils.c |   34 ++++++++++++++++++++++++++++++++--
 1 files changed, 32 insertions(+), 2 deletions(-)

diff --git a/src/utils.c b/src/utils.c
index ec4f8ac..05ad885 100644
--- a/src/utils.c
+++ b/src/utils.c
@@ -607,12 +607,13 @@
         max = swap;
     }
     return ((float)rand()/RAND_MAX * (max - min)) + min;
+	//return (random_float() * (max - min)) + min;
 }
 
 float rand_scale(float s)
 {
-    float scale = rand_uniform(1, s);
-    if(rand()%2) return scale;
+    float scale = rand_uniform_strong(1, s);
+    if(random_gen()%2) return scale;
     return 1./scale;
 }
 
@@ -628,3 +629,32 @@
     return t;
 }
 
+unsigned int random_gen()
+{
+	unsigned int rnd = 0;
+#ifdef WIN32
+	rand_s(&rnd);
+#else
+	rnd = rand();
+#endif
+	return rnd;
+}
+
+float random_float()
+{
+#ifdef WIN32
+	return ((float)random_gen() / (float)UINT_MAX);
+#else
+	return ((float)random_gen() / (float)RAND_MAX);
+#endif
+}
+
+float rand_uniform_strong(float min, float max)
+{
+	if (max < min) {
+		float swap = min;
+		min = max;
+		max = swap;
+	}
+	return (random_float() * (max - min)) + min;
+}
\ No newline at end of file

--
Gitblit v1.10.0