SIMD-oriented Fast Mersenne Twister: various implementations by volunteers

integer SFMT

SFMT.f90 by Atsushi ITO written in Fortran 90.
Atsushi Ito (Nagoya Univ.) kindly wrote a Fortran version of SFMT. It doesn't support SIMD feature or block generation. SFMT.f90 (2007/5/15)
"Random number library" by Charles Karney written in C++.
Charles Karney's Random number library now includes SFMT19937. The code of SFMT is refined and the generation speed is faster than original. But it doesn't support AltiVec. (here is a backup copy (updated 2008/4/29), see Random number library for latest version and detailed information.) (2007/5/15)
Random number library has been updated. AltiVec support has been added. SFMT19937 is now the default generator (instead of MT19937) MT19937 now uses the SFMT19937 initialization method by default. (2008/4/29)
the library is moved to sourceforge (links are updated) (2010/1/13)
SFMT19937.java by Adrian King in Java.
Adrian King kindly wrote a Java version of SFMT19937. SFMT-java.zip (2007/08/05)
libsfmt by Adam Piątyszek written in C.
Adam Piątyszek kindly made a C library of SFMT. You need only to type "./cofigure ; make" to make the library. After making it, you can use SFMT. This library is based on SFMT 1.3.3
libsfmt-1.3.0.tar.gz and libsfmt-1.3.0.tar.bz2 (2007/10/9)
Haskell binding by Don Stewart
Don Stewart kindly wrote a Haskell binding of SFMT. See his web page The mersenne-random package.(2008/01/29)
Two C++ versons with template library
Cory Nelson wrote a C++ version of SFMT using template library. It's in Source Forge.
Also dangochu wrote a C++ version of SFMT using template library. It's in his blog Second Garage (written in Japanese). He told us about Cory Nelson's code. He found Nelson's code after he wrote his one.(2008/9/29)
The randtoolbox Package for R
Now, the rand toolbox package for R contains SFMT. You can download the package from CRAN.
Windows DLL with SSE2 support by Emre Özgür İnce
Emre Özgür İnce kindly wrote a windows dll of SFMT with SSE2 support. For detail, visit the codeproject web site. (2008/12/4)
C# library by Emre Özgür İnce
Emre Özgür İnce kindly wrote a C# library of SFMT. For detail, visit the codeproject web site. (2009/11/2)
Modified C program by Kenji Rikitake
Kenji Rikitake kindly Modified C reference program not to use global state array, and put it in the github. (2010/6/30)
Erlang program by Kenji Rikitake
Kenji Rikitake kindly wrote an Erlang version of SFMT, and put it in the github. (2010/7/5)
PL/SQL program by Sean D. Stuber
Sean D. Stuber kindly wrote an PL/SQL version of SFMT. (2010/11/2)

double precision SFMT (dSFMT)

libdsfmt by Adam Piątyszek written in C.
Adam Piątyszek kindly made a C library of dSFMT. You need only to type "./cofigure ; make" to make the library. After making it, you can use SFMT.
libdsfmt-1.1.0.tar.gz and libdsfmt-1.1.0.tar.bz2 (2007/3/26)
libdsfmt which supports Win32 DLL library.
libdsfmt-1.1.1.tar.gz and libdsfmt-1.1.1.tar.bz2 (2007/5/16)
libdsfmt based on dSFMT1.2.1. "make check" command is added.
libdsfmt-1.2.1.tar.gz and libdsfmt-1.2.1.tar.bz2 (2007/10/9)
libdsfmt based on dSFMT1.3.
libdsfmt-1.3.tar.gz and libdsfmt-1.3.tar.bz2 (2008/4/14)
libdsfmt based on dSFMT1.3.
libdsfmt-1.3.1.tar.gz and libdsfmt-1.3.1.tar.bz2 (2008/5/12)
libdsfmt based on dSFMT2.0.
libdsfmt-2.0.tar.gz and libdsfmt-2.0.tar.bz2 (2008/8/28)
New version of libdsfmt based on dSFMT2.1.
libdsfmt-2.1.tar.gz and libdsfmt-2.1.tar.bz2 (2009/7/13)
"tutils library" by Takashi Takekawa written in C++.
Takashi Takekawa's tutils library includes dSFMT. The code of dSFMT is refined in concise manner and easy to use. But it doesn't support AltiVec. Takashi Takekawa's web page (here is a backup copy, see his web page for latest version and detailed information.) (2007/09/05)
"dSFMT state read/write routines" by Andrea Mennucci.
Andrea Mennucci kindly added state read/write routines to dSFMT. See dSFMT state read/write routines. (2010/11/30)
"dSFMT Fortran 2003 interface" by James Spencer.
James Spencer kindly write dSFMT Fortran 2003 interface. See dSFMT_F03_interface. (2012/10/29)

Return to SFMT main page