Skip to main content

PyMT64 Package

                 PyMT64

PyMT64 is a Python version of the Mersenne Twister (MT) 64-bit pseudorandom number generator by Takuji Nishimura and Makoto Matsumoto (see http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/emt64.html and the references below).

This customised version is thread safe and was interfaced from C to Python (see pymt64.c)

This module provides the following methods:

  • init : initialization of the state vector (mt) used by the pseudorandom number generator (PNG)
  • uniform : generation of an uniform distribution
  • normal : generation of two Normal distributions
  • poisson : generation of a Poisson distribution

The period of the PNG is 2**19937-1.

Example: import pymt64 seed = 143439545 seed # the initial seed mt = pymt64.init(seed) # initialisation of the state vector of MT u = pymt64.uniform(mt,10) # generation of an uniform distribution print (u) [0.12444525 0.22084376 0.31059967 0.45578589 0.84743752 0.28825306 0.83320389 0.05085032 0.48682253 0.17667076]

For a complete example, see pymt64_test.py

Note: the state vector 'mt' returned by pymt64.init has 313 elements instead of the 312 elements of the original C code. This is because the 313th element store the associated counter (mti).

Change history:

  • 2.0 (23/05/2023): suppress posible occurence of warning message or error due to the declaration of variable of type np.int
  • 1.9 : correct bug associated with the normal distribution
  • 1.8 : include a missing file
  • 1.7 : corrected data package contain
  • 1.6 : correct wrong size of the state vector
  • 1.5 : module interface is now based on Cython, module now compatible with python 3
  • 1.4 : link problem fixed
  • 1.3 : fixe a compilation problem regading the Numpy include directory
  • 1.2 : the previous implementation of the poisson distribution was not thread safe
  • 1.1 : fix a problem with the initialization of the seed (in the previous version the seed set by init() was not taken into account such that the results were not reproductible)
  • 1.0 : initial version

R. Samadi (LESIA, Observatoire de Paris), 22 Dec. 2012

References: T. Nishimura, Tables of 64-bit Mersenne Twisters'' ACM Transactions on Modeling and Computer Simulation 10. (2000) 348--357. M. Matsumoto and T. Nishimura, Mersenne Twister: a 623-dimensionally equidistributed uniform pseudorandom number generator'' ACM Transactions on Modeling and Computer Simulation 8. (Jan. 1998) 3--30.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

PyMT64-2.0.tar.gz (54.6 kB view details)

Uploaded Source

File details

Details for the file PyMT64-2.0.tar.gz.

File metadata

  • Download URL: PyMT64-2.0.tar.gz
  • Upload date:
  • Size: 54.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.10.6

File hashes

Hashes for PyMT64-2.0.tar.gz
Algorithm Hash digest
SHA256 34a6e740d25121fee6e4a20e0b2b6c8ed7085fe5c52a456bda02616fa6e5a7ad
MD5 f66e0c199d2a04f40db7fe4f2689ff96
BLAKE2b-256 2ce3ee23049e6b110fb9298ab3cafeebc5c84a71cdcd1c52cf1e211decf38eb6

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

2.0 This release

1 file

1.9

1 file

1.8

1 file

1.7

1 file

1.6

1 file

1.5

1 file

1.3

1 file

1.2

1 file

1.1

1 file

1.0

1 file

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page