Elektra  0.8.22
Functions
rand.c File Reference

Rand for Elektra. More...

#include "kdbrand.h"
#include <kdbassert.h>
#include <time.h>
Include dependency graph for rand.c:

Functions

void elektraRand (int32_t *seed)
 Non cryptographic pseudo random number generator. More...
 
int32_t elektraRandGetInitSeed (void)
 Random initial seed generator. More...
 

Detailed Description

Rand for Elektra.

Function Documentation

◆ elektraRand()

void elektraRand ( int32_t *  seed)

Non cryptographic pseudo random number generator.

By Ray Gardner www8.cs.umu.se/~isak/snippets/rg_rand.c

based on "Random Number Generators: Good Ones Are Hard to Find", S.K. Park and K.W. Miller, Communications of the ACM 31:10 (Oct 1988), and "Two Fast Implementations of the 'Minimal Standard' Random Number Generator", David G. Carta, Comm. ACM 33, 1 (Jan 1990), p. 87-88

linear congruential generator f(z) = 16807 z mod (2 ** 31 - 1)

uses L. Schrage's method to avoid overflow problems

Make sure the initial seed is: 0 < seed < ELEKTRARANDMAX

Parameters
seeda pointer to the seed

◆ elektraRandGetInitSeed()

int32_t elektraRandGetInitSeed ( void  )

Random initial seed generator.

Generates a random initial seed for the elektraRand (...) function. Two invocations in the same second return the same random initial seed, due to the usage of time (0).

Return values
randominitial seed