version 1.1, 1999/12/03 07:39:08 |
version 1.3, 2018/03/29 01:32:52 |
|
|
/* $OpenXM: OpenXM/src/asir99/engine/mt19937.c,v 1.1.1.1 1999/11/10 08:12:26 noro Exp $ */ |
/* $OpenXM: OpenXM_contrib2/asir2000/engine/mt19937.c,v 1.2 2000/08/21 08:31:28 noro Exp $ |
|
*/ |
#include <stdio.h> |
#include <stdio.h> |
|
|
/* A C-program for MT19937: Real number version */ |
/* A C-program for MT19937: Real number version */ |
Line 55 static int mti=N+1; /* mti==N+1 means mt[N] is not ini |
|
Line 56 static int mti=N+1; /* mti==N+1 means mt[N] is not ini |
|
int mt_save(name) |
int mt_save(name) |
char *name; |
char *name; |
{ |
{ |
FILE *fp; |
FILE *fp; |
|
|
if ( !(fp = fopen(name,"wb")) ) |
if ( !(fp = fopen(name,"wb")) ) |
return 0; |
return 0; |
fwrite(mt,N,sizeof(unsigned long),fp); |
fwrite(mt,N,sizeof(unsigned long),fp); |
fwrite(&mti,1,sizeof(int),fp); |
fwrite(&mti,1,sizeof(int),fp); |
fclose(fp); |
fclose(fp); |
return 1; |
return 1; |
} |
} |
|
|
int mt_load(name) |
int mt_load(name) |
char *name; |
char *name; |
{ |
{ |
FILE *fp; |
FILE *fp; |
|
|
if ( !(fp = fopen(name,"rb")) ) |
if ( !(fp = fopen(name,"rb")) ) |
return 0; |
return 0; |
fread(mt,N,sizeof(unsigned long),fp); |
fread(mt,N,sizeof(unsigned long),fp); |
fread(&mti,1,sizeof(int),fp); |
fread(&mti,1,sizeof(int),fp); |
fclose(fp); |
fclose(fp); |
return 1; |
return 1; |
} |
} |
|
|
/* initializing the array with a NONZERO seed */ |
/* initializing the array with a NONZERO seed */ |
void |
void |
sgenrand(seed) |
sgenrand(seed) |
unsigned long seed; |
unsigned long seed; |
{ |
{ |
/* setting initial seeds to mt[N] using */ |
/* setting initial seeds to mt[N] using */ |
/* the generator Line 25 of Table 1 in */ |
/* the generator Line 25 of Table 1 in */ |