AlexeyAB
2017-09-15 2baa7bde542ed490f8ab35c82dd3174fddea63f3
src/utils.c
@@ -3,14 +3,14 @@
#include <string.h>
#include <math.h>
#include <assert.h>
#include "unistd.h"
#include <float.h>
#include <limits.h>
#ifdef WIN32
#include "utils.h"
#include "unistd.h"
#else
#include <utils.h>
#include <unistd.h>
#endif
#include "utils.h"
#pragma warning(disable: 4996)
@@ -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;
}