8.2 bigfloat で MPFR を利用する

Bigfloat

インストールの記録
tar tzf bigfloat-0.3.0a2.tar.gz
cd bigfloat-0.3.0a2
setenv LIBRARY_PATH /opt/local/lib
setenv CPATH /opt/local/include
python2 setup.py build
sudo python2 setup.py install

これで良いかと思って試してみたら、早速叱られた。
% python2
>> from bigfloat import *
mpfr の module が見つからないとか。

/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/bigfloat
bigfloat_config.py というファイルを置く。 僕は https://bitbucket.org/dickinsm/bigfloat/src/a43934e808cd/bigfloat_ctypes/bigfloat/bigfloat_config.pyから持って来たが、実質全部注釈だった。 内容は注釈を参考に書いた次の1行だけで良い。
mpfr_library_location = "/opt/local/lib/libmpfr.dylib"

http://pythonhosted.org/bigfloat/ などを読むと使い方が分かる。
動くかな?
>>> from bigfloat import *
>>> sqrt(2, precision(100))
BigFloat.exact('1.4142135623730950488016887242092', precision=100)
動いた。ちなみに precision の単位はビット数。デフォールトは 53 だ。

桂田 祐史
2018-01-07