SimGrid  3.14.159
Versatile Simulation of Distributed Systems
RngStream.c File Reference
#include "xbt/RngStream.h"
#include "xbt/sysdep.h"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

Macros

#define norm   2.328306549295727688e-10
 
#define m1   4294967087.0
 
#define m2   4294944443.0
 
#define a12   1403580.0
 
#define a13n   810728.0
 
#define a21   527612.0
 
#define a23n   1370589.0
 
#define two17   131072.0
 
#define two53   9007199254740992.0
 
#define fact   5.9604644775390625e-8 /* 1 / 2^24 */
 

Functions

static double MultModM (double a, double s, double c, double m)
 
static void MatVecModM (double A[3][3], double s[3], double v[3], double m)
 
static void MatMatModM (double A[3][3], double B[3][3], double C[3][3], double m)
 
static void MatTwoPowModM (double A[3][3], double B[3][3], double m, long e)
 
static void MatPowModM (double A[3][3], double B[3][3], double m, long n)
 
static double U01 (RngStream g)
 
static double U01d (RngStream g)
 
static int CheckSeed (unsigned long seed[6])
 
RngStream RngStream_CreateStream (const char name[])
 
void RngStream_DeleteStream (RngStream *p)
 
RngStream RngStream_CopyStream (const RngStream src)
 
void RngStream_ResetStartStream (RngStream g)
 
void RngStream_ResetNextSubstream (RngStream g)
 
void RngStream_ResetStartSubstream (RngStream g)
 
int RngStream_SetPackageSeed (unsigned long seed[6])
 
int RngStream_SetSeed (RngStream g, unsigned long seed[6])
 
void RngStream_AdvanceState (RngStream g, long e, long c)
 
void RngStream_GetState (RngStream g, unsigned long seed[6])
 
void RngStream_WriteState (RngStream g)
 
void RngStream_WriteStateFull (RngStream g)
 
void RngStream_IncreasedPrecis (RngStream g, int incp)
 
void RngStream_SetAntithetic (RngStream g, int a)
 
double RngStream_RandU01 (RngStream g)
 
int RngStream_RandInt (RngStream g, int i, int j)
 

Variables

static double nextSeed [6] = { 12345, 12345, 12345, 12345, 12345, 12345 }
 
static double InvA1 [3][3]
 
static double InvA2 [3][3]
 
static double A1p0 [3][3]
 
static double A2p0 [3][3]
 
static double A1p76 [3][3]
 
static double A2p76 [3][3]
 
static double A1p127 [3][3]
 
static double A2p127 [3][3]
 

Macro Definition Documentation

§ norm

#define norm   2.328306549295727688e-10

§ m1

#define m1   4294967087.0

§ m2

#define m2   4294944443.0

§ a12

#define a12   1403580.0

§ a13n

#define a13n   810728.0

§ a21

#define a21   527612.0

§ a23n

#define a23n   1370589.0

§ two17

#define two17   131072.0

§ two53

#define two53   9007199254740992.0

§ fact

#define fact   5.9604644775390625e-8 /* 1 / 2^24 */

Function Documentation

§ MultModM()

static double MultModM ( double  a,
double  s,
double  c,
double  m 
)
static

§ MatVecModM()

static void MatVecModM ( double  A[3][3],
double  s[3],
double  v[3],
double  m 
)
static

§ MatMatModM()

static void MatMatModM ( double  A[3][3],
double  B[3][3],
double  C[3][3],
double  m 
)
static

§ MatTwoPowModM()

static void MatTwoPowModM ( double  A[3][3],
double  B[3][3],
double  m,
long  e 
)
static

§ MatPowModM()

static void MatPowModM ( double  A[3][3],
double  B[3][3],
double  m,
long  n 
)
static

§ U01()

static double U01 ( RngStream  g)
static

§ U01d()

static double U01d ( RngStream  g)
static

§ CheckSeed()

static int CheckSeed ( unsigned long  seed[6])
static

§ RngStream_CreateStream()

RngStream RngStream_CreateStream ( const char  name[])

§ RngStream_DeleteStream()

void RngStream_DeleteStream ( RngStream p)

§ RngStream_CopyStream()

RngStream RngStream_CopyStream ( const RngStream  src)

§ RngStream_ResetStartStream()

void RngStream_ResetStartStream ( RngStream  g)

§ RngStream_ResetNextSubstream()

void RngStream_ResetNextSubstream ( RngStream  g)

§ RngStream_ResetStartSubstream()

void RngStream_ResetStartSubstream ( RngStream  g)

§ RngStream_SetPackageSeed()

int RngStream_SetPackageSeed ( unsigned long  seed[6])

§ RngStream_SetSeed()

int RngStream_SetSeed ( RngStream  g,
unsigned long  seed[6] 
)

§ RngStream_AdvanceState()

void RngStream_AdvanceState ( RngStream  g,
long  e,
long  c 
)

§ RngStream_GetState()

void RngStream_GetState ( RngStream  g,
unsigned long  seed[6] 
)

§ RngStream_WriteState()

void RngStream_WriteState ( RngStream  g)

§ RngStream_WriteStateFull()

void RngStream_WriteStateFull ( RngStream  g)

§ RngStream_IncreasedPrecis()

void RngStream_IncreasedPrecis ( RngStream  g,
int  incp 
)

§ RngStream_SetAntithetic()

void RngStream_SetAntithetic ( RngStream  g,
int  a 
)

§ RngStream_RandU01()

double RngStream_RandU01 ( RngStream  g)

§ RngStream_RandInt()

int RngStream_RandInt ( RngStream  g,
int  i,
int  j 
)

Variable Documentation

§ nextSeed

double nextSeed[6] = { 12345, 12345, 12345, 12345, 12345, 12345 }
static

§ InvA1

double InvA1[3][3]
static
Initial value:
= {
{ 184888585.0, 0.0, 1945170933.0 },
{ 1.0, 0.0, 0.0 },
{ 0.0, 1.0, 0.0 }
}

§ InvA2

double InvA2[3][3]
static
Initial value:
= {
{ 0.0, 360363334.0, 4225571728.0 },
{ 1.0, 0.0, 0.0 },
{ 0.0, 1.0, 0.0 }
}

§ A1p0

double A1p0[3][3]
static
Initial value:
= {
{ 0.0, 1.0, 0.0 },
{ 0.0, 0.0, 1.0 },
{ -810728.0, 1403580.0, 0.0 }
}

§ A2p0

double A2p0[3][3]
static
Initial value:
= {
{ 0.0, 1.0, 0.0 },
{ 0.0, 0.0, 1.0 },
{ -1370589.0, 0.0, 527612.0 }
}

§ A1p76

double A1p76[3][3]
static
Initial value:
= {
{ 82758667.0, 1871391091.0, 4127413238.0 },
{ 3672831523.0, 69195019.0, 1871391091.0 },
{ 3672091415.0, 3528743235.0, 69195019.0 }
}

§ A2p76

double A2p76[3][3]
static
Initial value:
= {
{ 1511326704.0, 3759209742.0, 1610795712.0 },
{ 4292754251.0, 1511326704.0, 3889917532.0 },
{ 3859662829.0, 4292754251.0, 3708466080.0 }
}

§ A1p127

double A1p127[3][3]
static
Initial value:
= {
{ 2427906178.0, 3580155704.0, 949770784.0 },
{ 226153695.0, 1230515664.0, 3580155704.0 },
{ 1988835001.0, 986791581.0, 1230515664.0 }
}

§ A2p127

double A2p127[3][3]
static
Initial value:
= {
{ 1464411153.0, 277697599.0, 1610723613.0 },
{ 32183930.0, 1464411153.0, 1022607788.0 },
{ 2824425944.0, 32183930.0, 2093834863.0 }
}