SIMD-oriented Fast Mersenne Twisterのpythonラッパーを書いた

SIMD-oriented Fast Mersenne Twister とは

SIMD命令を使うように設計されたMersenne Twisterのこと.普通のMersenne Twisterより高速に動作する.3DSのあるゲームソフトで擬似乱数を生成するために使われていたりする

動機

SFMT(SIMD-oriented Fast Mersenne Twister) を使う時はいつもCでプログラムを実装して,それをpythonからsubprocessで呼び出していた.この方法だと使える言語に制限があるAWS Lambda など使えない.
そう思って作ったがこの記事を書くにあたって改めて調べるとバイナリも一緒にアップロードすれば使えるらしい.まあ,バイナリを作ってアップロードするという手間が省けると思うことにする.

すでに作ってる人はいたが sfmt_genrand_real1 しか実装されておらず, sfmt_genrand_uint64 を使いたい自分の要望にはマッチしていなかった. GitHub - mochizuki-ichiro/pysfmt: SIMD-oriented Fast Mersenne Twister for Python Cythonの勉強も兼ねて自分で実装することにした.

コード

github.com

pypiにもアップロードしたので pip install pysfmt でインストール出来る

問題点

coverageを計測したかったけど何故かできていない http://cython.readthedocs.io/en/latest/src/tutorial/profiling_tutorial.html#enabling-coverage-analysis にあるように .coveragerc に設定を書いたけどダメだった