/*
    Raydium - CQFD Corp.
    http://raydium.org/
    Released under both BSD license and Lesser GPL library license.
    See "license.txt" file.
*/

#ifndef DONT_INCLUDE_HEADERS
#include "index.h"
#else
#include "headers/random.h"
#endif 

void raydium_random_randomize(void)
{
srand(time(NULL));
}

GLfloat raydium_random_pos_1(void)
{
return (GLfloat) rand() / (GLfloat) RAND_MAX;
}

/* de -1.0 a 1.0 */
GLfloat raydium_random_neg_pos_1(void)
{
return (2.f * raydium_random_pos_1()) - 1.f;
}

GLfloat raydium_random_0_x(GLfloat i)
{
return(raydium_random_pos_1() * i);
}

GLfloat raydium_random_f(GLfloat min, GLfloat max)
{
return( (raydium_random_pos_1() * (max-min)) + min);
}

int raydium_random_i(int min, int max)
{
return (rand()%(max-min+1))+min;
}


signed char raydium_random_proba(GLfloat proba)
{
GLfloat min;
GLfloat max;

max=2*proba;
min=max-2;

return raydium_random_f(min,max)>=0;
}