Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'source/blender/blenlib/intern/rand.c')
-rw-r--r--source/blender/blenlib/intern/rand.c72
1 files changed, 36 insertions, 36 deletions
diff --git a/source/blender/blenlib/intern/rand.c b/source/blender/blenlib/intern/rand.c
index 4435e9ce09c..76d17f34b5e 100644
--- a/source/blender/blenlib/intern/rand.c
+++ b/source/blender/blenlib/intern/rand.c
@@ -40,7 +40,7 @@
#include "BLI_threads.h"
#include "BLI_rand.h"
-#if defined(WIN32) && !defined(FREE_WINDOWS)
+#ifdef _MSC_VER
typedef unsigned __int64 r_uint64;
#define MULTIPLIER 0x5DEECE66Di64
@@ -64,51 +64,51 @@ struct RNG {
r_uint64 X;
};
-RNG *rng_new(unsigned int seed)
+RNG *BLI_rng_new(unsigned int seed)
{
RNG *rng = MEM_mallocN(sizeof(*rng), "rng");
- rng_seed(rng, seed);
+ BLI_rng_seed(rng, seed);
return rng;
}
-void rng_free(RNG *rng)
+void BLI_rng_free(RNG *rng)
{
MEM_freeN(rng);
}
-void rng_seed(RNG *rng, unsigned int seed)
+void BLI_rng_seed(RNG *rng, unsigned int seed)
{
rng->X = (((r_uint64) seed) << 16) | LOWSEED;
}
-void rng_srandom(RNG *rng, unsigned int seed)
+void BLI_rng_srandom(RNG *rng, unsigned int seed)
{
- rng_seed(rng, seed + hash[seed & 255]);
- seed = rng_getInt(rng);
- rng_seed(rng, seed + hash[seed & 255]);
- seed = rng_getInt(rng);
- rng_seed(rng, seed + hash[seed & 255]);
+ BLI_rng_seed(rng, seed + hash[seed & 255]);
+ seed = BLI_rng_get_int(rng);
+ BLI_rng_seed(rng, seed + hash[seed & 255]);
+ seed = BLI_rng_get_int(rng);
+ BLI_rng_seed(rng, seed + hash[seed & 255]);
}
-int rng_getInt(RNG *rng)
+int BLI_rng_get_int(RNG *rng)
{
rng->X = (MULTIPLIER * rng->X + ADDEND) & MASK;
return (int) (rng->X >> 17);
}
-double rng_getDouble(RNG *rng)
+double BLI_rng_get_double(RNG *rng)
{
- return (double) rng_getInt(rng) / 0x80000000;
+ return (double) BLI_rng_get_int(rng) / 0x80000000;
}
-float rng_getFloat(RNG *rng)
+float BLI_rng_get_float(RNG *rng)
{
- return (float) rng_getInt(rng) / 0x80000000;
+ return (float) BLI_rng_get_int(rng) / 0x80000000;
}
-void rng_shuffleArray(RNG *rng, void *data, int elemSize, int numElems)
+void BLI_rng_shuffle_array(RNG *rng, void *data, int elemSize, int numElems)
{
int i = numElems;
void *temp;
@@ -122,7 +122,7 @@ void rng_shuffleArray(RNG *rng, void *data, int elemSize, int numElems)
/* XXX Shouldn't it rather be "while (i--) {" ?
* Else we have no guaranty first (0) element has a chance to be shuffled... --mont29 */
while (--i) {
- int j = rng_getInt(rng) % numElems;
+ int j = BLI_rng_get_int(rng) % numElems;
if (i != j) {
void *iElem = (unsigned char *)data + i * elemSize;
void *jElem = (unsigned char *)data + j * elemSize;
@@ -135,12 +135,12 @@ void rng_shuffleArray(RNG *rng, void *data, int elemSize, int numElems)
free(temp);
}
-void rng_skip(RNG *rng, int n)
+void BLI_rng_skip(RNG *rng, int n)
{
int i;
for (i = 0; i < n; i++)
- rng_getInt(rng);
+ BLI_rng_get_int(rng);
}
/***/
@@ -150,28 +150,28 @@ static RNG theBLI_rng = {0};
/* note, this one creates periodical patterns */
void BLI_srand(unsigned int seed)
{
- rng_seed(&theBLI_rng, seed);
+ BLI_rng_seed(&theBLI_rng, seed);
}
/* using hash table to create better seed */
void BLI_srandom(unsigned int seed)
{
- rng_srandom(&theBLI_rng, seed);
+ BLI_rng_srandom(&theBLI_rng, seed);
}
int BLI_rand(void)
{
- return rng_getInt(&theBLI_rng);
+ return BLI_rng_get_int(&theBLI_rng);
}
double BLI_drand(void)
{
- return rng_getDouble(&theBLI_rng);
+ return BLI_rng_get_double(&theBLI_rng);
}
float BLI_frand(void)
{
- return rng_getFloat(&theBLI_rng);
+ return BLI_rng_get_float(&theBLI_rng);
}
void BLI_fillrand(void *addr, int len)
@@ -179,16 +179,16 @@ void BLI_fillrand(void *addr, int len)
RNG rng;
unsigned char *p = addr;
- rng_seed(&rng, (unsigned int) (PIL_check_seconds_timer() * 0x7FFFFFFF));
- while (len--) *p++ = rng_getInt(&rng) & 0xFF;
+ BLI_rng_seed(&rng, (unsigned int) (PIL_check_seconds_timer() * 0x7FFFFFFF));
+ while (len--) *p++ = BLI_rng_get_int(&rng) & 0xFF;
}
void BLI_array_randomize(void *data, int elemSize, int numElems, unsigned int seed)
{
RNG rng;
- rng_seed(&rng, seed);
- rng_shuffleArray(&rng, data, elemSize, numElems);
+ BLI_rng_seed(&rng, seed);
+ BLI_rng_shuffle_array(&rng, data, elemSize, numElems);
}
/* ********* for threaded random ************** */
@@ -200,20 +200,20 @@ void BLI_thread_srandom(int thread, unsigned int seed)
if (thread >= BLENDER_MAX_THREADS)
thread = 0;
- rng_seed(&rng_tab[thread], seed + hash[seed & 255]);
- seed = rng_getInt(&rng_tab[thread]);
- rng_seed(&rng_tab[thread], seed + hash[seed & 255]);
- seed = rng_getInt(&rng_tab[thread]);
- rng_seed(&rng_tab[thread], seed + hash[seed & 255]);
+ BLI_rng_seed(&rng_tab[thread], seed + hash[seed & 255]);
+ seed = BLI_rng_get_int(&rng_tab[thread]);
+ BLI_rng_seed(&rng_tab[thread], seed + hash[seed & 255]);
+ seed = BLI_rng_get_int(&rng_tab[thread]);
+ BLI_rng_seed(&rng_tab[thread], seed + hash[seed & 255]);
}
int BLI_thread_rand(int thread)
{
- return rng_getInt(&rng_tab[thread]);
+ return BLI_rng_get_int(&rng_tab[thread]);
}
float BLI_thread_frand(int thread)
{
- return rng_getFloat(&rng_tab[thread]);
+ return BLI_rng_get_float(&rng_tab[thread]);
}