view RngStream.h @ 3:974d7be8eec4 tip

Update to pack-based dcg utilities
author samer
date Tue, 03 Oct 2017 11:52:23 +0100
parents b31415b4a196
children
line wrap: on
line source
/* RngStream.h for ANSI C */
#ifndef RNGSTREAM_H
#define RNGSTREAM_H

struct rng_state {
   double Cg[6]; // state of generator
};

struct rng_jump {
	double T1[3][3]; // transition matrix for a jump in first generator
	double T2[3][3]; // ditto for second
};


void RngStream_InitState(struct rng_state *g);
void RngStream_InitJump(struct rng_jump *j,int e);
void RngStream_DoubleJump(struct rng_jump *j, struct rng_jump *j2);
int  RngStream_SetState(struct rng_state *g, unsigned seed[6]);
void RngStream_GetState(struct rng_state *g, unsigned seed[6]);
void RngStream_Advance(struct rng_jump *j, struct rng_state *g1, struct rng_state *g2);
double RngStream_Float(struct rng_state *g1, struct rng_state *g2);
double RngStream_Double(struct rng_state *g1, struct rng_state *g2);
double RngStream_Raw(struct rng_state *g1, struct rng_state *g2);

#endif