1 /* Copyright (c) 2012, 2014. The SimGrid Team.
2 * All rights reserved. */
4 /* This program is free software; you can redistribute it and/or modify it
5 * under the terms of the license (GNU LGPL) which comes with this package. */
7 /* RngStream.h for ANSI C */
13 typedef struct RngStream_InfoState * RngStream;
15 struct RngStream_InfoState {
16 double Cg[6], Bg[6], Ig[6];
23 XBT_PUBLIC(int) RngStream_SetPackageSeed (unsigned long seed[6]);
26 XBT_PUBLIC(RngStream) RngStream_CreateStream (const char name[]);
29 XBT_PUBLIC(void) RngStream_DeleteStream (RngStream *pg);
32 XBT_PUBLIC(RngStream) RngStream_CopyStream (const RngStream src);
35 XBT_PUBLIC(void) RngStream_ResetStartStream (RngStream g);
38 XBT_PUBLIC(void) RngStream_ResetStartSubstream (RngStream g);
41 XBT_PUBLIC(void) RngStream_ResetNextSubstream (RngStream g);
44 XBT_PUBLIC(void) RngStream_SetAntithetic (RngStream g, int a);
47 XBT_PUBLIC(void) RngStream_IncreasedPrecis (RngStream g, int incp);
50 XBT_PUBLIC(int) RngStream_SetSeed (RngStream g, unsigned long seed[6]);
53 XBT_PUBLIC(void) RngStream_AdvanceState (RngStream g, long e, long c);
56 XBT_PUBLIC(void) RngStream_GetState (RngStream g, unsigned long seed[6]);
59 XBT_PUBLIC(void) RngStream_WriteState (RngStream g);
62 XBT_PUBLIC(void) RngStream_WriteStateFull (RngStream g);
65 XBT_PUBLIC(double) RngStream_RandU01 (RngStream g);
68 XBT_PUBLIC(int) RngStream_RandInt (RngStream g, int i, int j);