Reference¶
Random Number Generators¶
-
typedef struct rng *
RNG¶ Defines a random number generator.
-
void
rng_seed(RNG rng, unsigned long seed)¶ Seed the generator.
- Parameters
rng: The random number generator to seed.seed: The seed value.
-
unsigned long
rng_next(RNG rng)¶ Get the next unsigned long random number.
- Parameters
rng: The random number generator.
-
RNG
rng_std_create(MEM_SCOPE mem)¶ Create a standard system random number generator.
- Return
- A standard system random number generator.
- Remark
- This generator returns 31bit numbers.
- Parameters
mem: A memory scope to own the memory.
Random Numbers¶
-
typedef struct random *
RANDOM¶ A random number generator.
-
RANDOM
rnd_create(MEM_SCOPE mem, RNG rng)¶ Create a random number generator.
- Return
- A random number generator.
- Remark
- The generator is seeded with the CPU timestamp counter, the number of cycles since the last reset, so may be taken as ready to use for stochastic processing.
- Parameters
mem: A memory scope to own the memory.rng: The specific generator to use for random number generation.
-
void
rnd_seed(RANDOM rnd, unsigned long seed)¶ Seed the random number generator to a known seed.
- Parameters
rnd: The random number generator.seed: The seed value.
-
unsigned int
rnd_int(RANDOM rnd)¶ Generate a random integer between the range 0 and MAX_UINT
- Return
- A random number.
- Parameters
rnd: The random number generator.
-
double
rnd_real(RANDOM rnd)¶ Generate a random floating point number between the range 0 and 1 (closed).
- Return
- A random number.
- Remark
- The generated number is in the range [0,1.0), IE the value 1.0 is never returned, but the value immediately below could be.
- Parameters
rnd: The random number generator.
-
int
rnd_bool(RANDOM rnd)¶ Generate a random boolean value, TRUE or FALSE.
- Return
- TRUE or FALSE, wit equal probability.
- Parameters
rnd: The random number generator.
-
unsigned int
rnd_scaled_int(RANDOM rnd, int min, int max)¶ Generate a random integer number between the given range (open/closed).
- Return
- A random number.
- Remark
- The generated number is in the range [min, max), IE the max value is never returned, but the value immediately below could be.
- Parameters
rnd: The random number generator.min: The minimum value to generate.max: The maximum value to generate (see remark).
-
double
rnd_scaled_real(RANDOM rnd, double min, double max)¶ Generate a random floating point number between the given range (open/closed).
- Return
- A random number.
- Remark
- The generated number is in the range [min, max), IE the max value is never returned, but the value immediately below could be.
- Parameters
rnd: The random number generator.min: The minimum value to generate.max: The maximum value to generate (see remark).
Hashing¶
-
unsigned long
hash_simple(const void *key, unsigned int len, unsigned long seed)¶ Hash an arbitrary block of data using a simple hash.
- Return
- A hash value.
- Remark
- The seed is used to provide additional security.
- Parameters
key: The key for the hash.len: The length of the data in bytes.seed: A seed for the hash.
