HaskellとStackを使ってプロジェクトを管理しています.
やりたいこととしては,gmpにあるmpfやmpfrなどにある,メモリの許す限り大きな値を表現できる浮動小数点数です.
できるだけメジャーなパッケージとしてHackageからいろいろ選んだのですが,hmpfrがそれに該当しました.
それ以外のパッケージは,haskell-gmpのバージョンが古いものを要求していたりと使い物になりませんでした.
当方Windows10にて作業しております.
stackでhmpfrを扱うにはlibmpfr.aが適合してなければならず,Git for Windows SDKからlibmpfr.aを引っ張ってきてstack build
でプログラムをビルド・リンクしても
shell
1C:/Users/user/AppData/Local/Programs/stack/x86_64-windows/ghc-7.10.3/mingw/bin/../lib/libmpfr.a(clear.o): 関数 `mpfr_clear' 内: 2C:\haskell\mpfr-3.1.4\src/clear.c:28: `__gmp_get_memory_functions' に対する定義されていない参照です
などというエラーメッセージが大量に出てきて使えませんでした.
これは何が原因なのでしょうか?hmpfrのverは0.4.1を使っており,Git for Windows SDKから引っ張ってきたlibmpfr.aのverはmpfr-3.1.4-1で,入手方法はGit for Windows SDKでpacman -S mpfr
してきたものです.
stack上で構築されたmingw上からmpfrをビルドして,それを利用すればいいのでは?と思ったのですが,stack上のmingwでどうやってmpfrやらそれらのビルドに必要なものを導入すればいいのやら見当が付きません.
できるだけメジャーな方法で任意精度浮動小数点数をHaskellで扱えればいいので,hmpfrにこだわる理由は特にありませんが,stackで環境に対して互換性を維持したまま導入できたり,堅牢でメジャーな方法で導入したいです.
よろしくお願いします.
あなたの回答
tips
プレビュー