annotate rndutils.h @ 3:974d7be8eec4 tip

Update to pack-based dcg utilities
author samer
date Tue, 03 Oct 2017 11:52:23 +0100
parents b31415b4a196
children
rev   line source
samer@0 1 #include <stdio.h>
samer@0 2 #include "RngStream.h"
samer@0 3
samer@0 4 // random generator state
samer@0 5 typedef struct {
samer@0 6 struct rng_state g;
samer@0 7 double prev_normal;
samer@0 8 } RndState;
samer@0 9
samer@0 10 typedef struct {
samer@0 11 struct rng_jump j;
samer@0 12 int e;
samer@0 13 } RndJump;
samer@0 14
samer@0 15 int randomise_from(FILE *p, RndState *S);
samer@0 16 int spawn_gen(RndState *S0, RndState *S1);
samer@0 17 void InitRndState(RndState *S);
samer@0 18
samer@0 19 double Raw(RndState *);
samer@0 20 double Uniform(RndState *);
samer@0 21 double Normal(RndState *);
samer@0 22 double Exponential(RndState *);
samer@0 23 double Gamma(RndState *,double a);
samer@0 24 long Poisson(RndState *,double a);
samer@0 25 int Dirichlet(RndState *,long n, double *a, double *x);
samer@0 26 double Beta(RndState *,double a, double b);
samer@0 27 double Zeta(RndState *,double a);
samer@0 28 int Binomial(RndState *,double p, int n);
samer@0 29 double Stable(RndState *,int param,double a, double b);
samer@0 30 long Discrete(RndState *, long n, double *p, double tot);
samer@0 31