* Language: ANSI C
* Copyright: Pierre L'Ecuyer, University of Montreal
* Date: 14 August 2001
- * License: GPL version 2 or later
+ * License: GPL version 2 or later
*
* Notice: Please contact P. L'Ecuyer at <lecuyer@iro.UMontreal.ca>
* for commercial purposes.
for (i = 0; i < 3; ++i) {
if (seed[i] >= m1) {
- fprintf (stderr, "****************************************\n"
- "ERROR: Seed[%1d] >= m1, Seed is not set.\n"
- "****************************************\n\n", i);
- return (-1);
+ fprintf (stderr, "****************************************\n"
+ "ERROR: Seed[%1d] >= m1, Seed is not set.\n"
+ "****************************************\n\n", i);
+ return (-1);
}
}
for (i = 3; i < 6; ++i) {
if (seed[i] >= m2) {
- fprintf (stderr, "****************************************\n"
- "ERROR: Seed[%1d] >= m1, Seed is not set.\n"
- "****************************************\n\n", i);
- return (-1);
+ fprintf (stderr, "****************************************\n"
+ "ERROR: Seed[%1d] >= m1, Seed is not set.\n"
+ "****************************************\n\n", i);
+ return (-1);
}
}
if (seed[0] == 0 && seed[1] == 0 && seed[2] == 0) {
fprintf (stderr, "****************************\n"
- "ERROR: First 3 seeds = 0.\n"
- "****************************\n\n");
+ "ERROR: First 3 seeds = 0.\n"
+ "****************************\n\n");
return (-1);
}
if (seed[3] == 0 && seed[4] == 0 && seed[5] == 0) {
fprintf (stderr, "****************************\n"
- "ERROR: Last 3 seeds = 0.\n"
- "****************************\n\n");
+ "ERROR: Last 3 seeds = 0.\n"
+ "****************************\n\n");
return (-1);
}
/*-------------------------------------------------------------------------*/
+RngStream RngStream_CopyStream (const RngStream src)
+{
+ RngStream g;
+
+ if(src == NULL) {
+ printf ("RngStream_CopyStream: 'src' not initialized\n\n");
+ exit (EXIT_FAILURE);
+ }
+
+ g = (RngStream) malloc (sizeof (struct RngStream_InfoState));
+ if (g == NULL) {
+ printf ("RngStream_CopyStream: No more memory\n\n");
+ exit (EXIT_FAILURE);
+ }
+ memcpy((void*) g, (void*) src, sizeof (struct RngStream_InfoState));
+
+ return g;
+}
+
+/*-------------------------------------------------------------------------*/
+
void RngStream_ResetStartStream (RngStream g)
{
int i;