Reference

Random Numbers

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.


RNG rng_xor_create(MEM_SCOPE mem)

Create an XOR random number generator.

Return
An XOR random number generator.
Remark
This generator returns 64bit numbers.
Parameters
  • mem: A memory scope to own the memory.


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.