メルセンヌツイスタ64bit版の導入

メルセンヌツイスタ64bit版の導入

ソースの入手

 wget http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/mt19937-64.tgz
 gzip -d mt19937-64.tgz
 tar -xvf mt19937-64.tar


コピー

cd /mt19937-64
cp mt64.h /usr/include

コンパイル

gcc -c -O3 mt19937-64.c
gcc -shared -o mt64.dll mt19937-64.o
chmod a+x mt64.dll
cp mt64.dll /usr/bin
cp mt64.dll /lib/libmt64.a

テスト

$ cat mt_test.c
#include <stdio.h>
#include "mt64.h"

int main(){
 int i;
 init_genrand64(1);
 for(i=0;i<=100;i++){
//       printf("%lf\n",genrand64_real1());
         printf("%d\n",genrand64_int64()%10);
 }
 return 0;
}

コンパイル実行

 gcc -O3 mt_test.c -lmt64
 ./a.exe

c++と併用する場合
cのライブラリなので、
mt.hに以下のようにextern "C"{と} を加える

extern "C"{
 void ...
 void ...
 ....
 double ..
}

そして、コンパイル

g++ -O3 mt_test.c -lmt64

これでうまくいく。