関連リスト(0)
【編集】
多倍長計算ライブラリ 【編集】
多倍長が必要になるときは
- 悪条件行列と格闘する必要がある
- 精度チェックとかで、 単純に精度が欲しい
- もっというと、丸め制御と区間演算で精度保証したい
だと思うので、この辺をクリアできるかが一つの指標になりそう。

使い勝手的には
- 速い方がいい
- 楽に使いたい、変な関数呼び出しとかしたくない
- 数学関数とか自作したくない
とか欲しいと思う。
精度保証をまじめにやる場合は数学関数も適切に丸められないといけない。
更新日時:2017/11/01

1. mpmath派 【編集】  86pts. 根拠の追加

  W:1354761330  2012/12/06 2
12
方程式の求根、極限や微積分等の評価ができる。
http://mpmath.googlecode.com/svn/trunk/doc/build/calculus/index.html


  W:1354760155  2012/12/06 1
11
Python から使えて手軽。


  W:1354760573  2012/12/06 1
11
複素数が使える。


  W:1354761218  2012/12/06 1
11
基本的な数学関数をそなえている。


  W:1354761677  2012/12/06 1
11
多様な特殊関数(ベッセル関数、直交多項式、超幾何関数、楕円関数等々)が用意されている。
http://mpmath.googlecode.com/svn/trunk/doc/build/functions/index.html
ODE も「数値的に」解けるので、無いものも原理的に求められそう。


解く問題は ill-condition な場合は、正しく求められないかも。 2012/12/10
  W:1354761383  2012/12/06 0
10

特に Cholesky/LU 分解、行列の関数がサポートされてる。 2012/12/06
  W:1354788167  2012/12/06 0
10
matplotlib を利用してグラフ表示ができる。http://mpmath.googlecode.com/svn/trunk/doc/build/plotting.html


ちょっとライブラリという観点とはずれるけど。 2012/12/06
  W:1354788264  2012/12/06 0
10

  W:1354773978  2012/12/06 0
DEAD
遅い。(Python の組込み多倍長整数を利用しているため)


  W:1354774088  2012/12/06 0
10
gmpy を入れると GMP が利用できるのでパフォーマンスは改善される。


2. Exflib派 【編集】  63pts. 根拠の追加

  W:1354760252  2012/12/06 1
11
C C++ Fortran90/95 で使える。


  W:1354760541  2012/12/06 1
11
複素数が使える。


  W:1354761467  2012/12/06 1
11
行列ルーチンを扱える。


少なくとも LU/QR 分解が使える 2012/12/06
  W:1354761061  2012/12/06 0
10
operator overload の恩恵が得られる。


  W:1354761428  2012/12/06 0
10
丸め制御ができるので、精度保証計算が可能。


  W:1354761699  2012/12/06 0
10
基本的な数学関数をそなえている。


3. MPFR派 【編集】  44pts. 根拠の追加

  W:1354762889  2012/12/06 1
11
速い(GMP を使っているので)。


  W:1354762926  2012/12/06 1
11
基本的な数学関数をそなえている。


  W:1354763135  2012/12/06 1
11
IEEE 754-1985 規格由来の 4 つの丸めモードを拡張した丸めモードが利用できる(ビット数を 53bit にすると double と同じように振る舞う)ので、精度保証計算ができる。


  W:1354772831  2012/12/06 1
11
GMPと同じくGCCの4.7だとだとビルド時に必須だったので、
今後はとりあえずGCC入れれば入ってる的な扱いになるのかも


4. __float128派 【編集】  42pts. 根拠の追加

  W:1354774067  2012/12/06 1
11
最近のGCCで標準になった4倍精度の組み込み型。
多倍長の論題としてはちょっと違う感じがするけど…


  W:1354774131  2012/12/06 1
11
基本的な4倍精度数学関数が用意されている ( quadmath.h )


  W:1354774191  2012/12/06 1
11
新しいGCCなら何も不要で、コンパイル時に -lquadmath するだけで使えて手軽


  W:1354774436  2012/12/06 1
11
4倍精度で足りるのであれば恐らく多倍長ライブラリ叩くよりずっと速い


  W:1354774604  2012/12/06 1
11
複素数も使える。


  W:1354774637  2012/12/06 3
-13
多倍長じゃない...


5. FMLIB派 【編集】  41pts. 根拠の追加

  W:1354760722  2012/12/06 1
11
FORTRAN90 で使える。


  W:1354761844  2012/12/06 0
10
基本的な数学関数をそなえている。


  W:1354762427  2012/12/06 0
10
operator overload の恩恵を受けられる。


  W:1355134631  2012/12/10 0
10
複素数が使える。


6. CLN派 【編集】  31pts. 根拠の追加

  W:1354760618  2012/12/06 1
11
複素数が使える。


  W:1354760608  2012/12/06 0
10
C++ なので operator overload の恩恵が得られる。


  W:1354761706  2012/12/06 0
10
基本的な数学関数をそなえている。


7. boost.Multiprecision派 【編集】  31pts. 根拠の追加

  W:1354760196  2012/12/06 1
11
バックエンドに GMP と MPFR のどちらを使うか選べるので速い。


  W:1354762945  2012/12/06 0
10
operator overload の恩恵を受けられる。


  W:1354762960  2012/12/06 0
10
基本的な数学関数をそなえている。


8. 手計算(笑)派 【編集】  23pts. 根拠の追加

  W:1355135101  2012/12/10 1
11
エネルギーが枯渇してもオッケー


確かに電気は要らない 2012/12/12
  W:1355142291  2012/12/10 0
DEAD
手を使うのにもエネルギーを使う。


  W:1355150249  2012/12/10 0
11
プログラミングにも手は使うっしょwww


  W:1355135119  2012/12/10 1
11
複素数が使える


  W:1355135445  2012/12/10 1
11
誰でも使えるインターフェイス!!紙とペンだけ


  W:1355135502  2012/12/10 1
11
行列計算ができる。


  W:1355135549  2012/12/10 1
11
どこでも計算できる


  W:1355325761  2012/12/13 0
10
ラフな計算やファジーな推論ができる。


  W:1355135281  2012/12/10 1
-11
計算速度が遅い...


  W:1355150471  2012/12/10 0
DEAD
計算機の計算スピードが十分速いとは限らない。


  W:1355240285  2012/12/12 0
-11
筋肉の反応速度の問題で、いくら脳が速く演算できても書き込みでボトルネックになり、電気的な記憶媒体に電圧で情報を書き込む速さに原理的に追いつけない。
手の質量もネックになる。


  W:1355142800  2012/12/10 1
-11
ライブラリではない。


  W:1355142597  2012/12/10 0
-10
計算ミスの可能性が高い。


  W:1355150523  2012/12/10 0
DEAD
可能性の話。プログラミングですらミスの可能性は潜む。


  W:1355206595  2012/12/11 1
-10
頻度の問題でプログラミングのミスと計算時のミスは切り分けるべき。


  W:1355143019  2012/12/10 0
-10
計算機ができることをわざわざ人間にやらせるのは無駄。


9. GMP派 【編集】  22pts. 根拠の追加

  W:1354760709  2012/12/06 1
11
速い。


たいていのライブラリは GMP を使うことでパフォーマンスを向上できるようになっている。 2012/12/06
Mathematica も GMP 使ってるらしい GNU_Multi-Precision_Library 2012/12/06
  W:1354772803  2012/12/06 1
11
GCCの4.7だとだとビルド時に必須だったので、
今後はとりあえずGCC入れれば入ってる的な扱いになるのかも


http://rpmfind.net//linux/RPM/fedora/devel/rawhide/x86_64/g/gcc-4.7.2-9.fc19.x86_64.html とかみると Requires に libgmp や libmpfr があるから入ってるっぽい。ヘッダは多分別に用意しないといけないだろうけど。 2012/12/06
10. java.math.BigDecimal派 【編集】  10pts. 根拠の追加

  W:1354773359  2012/12/06 0
10
Javaで標準ライブラリに入っている多倍長実数


  W:1354773432  2012/12/06 0
10
10進演算なので2進変換に際する誤差が出ない


  W:1354773445  2012/12/06 0
-10
書き換え不可なので、演算の度に新しいオブジェクトを生成する必要があって重い。特に桁が増えるとメモリ確保のコストが大きい。


  W:1354773568  2012/12/06 0
DEAD
固定少数点なので、浮動小数点で使うにはラッピングして実装しなきゃいけない


  W:1354773621  2012/12/06 0
10
まあ固定少数点と浮動小数点に優劣があるわけじゃないから、これはメリットともデメリットとも言えない


11. java.math.BigInteger派 【編集】  0pts. 根拠の追加

  W:1354773258  2012/12/06 0
10
Javaで標準ライブラリに入っている多倍長整数


  W:1354773324  2012/12/06 0
-10
書き換え不可なので、演算の度に新しいオブジェクトを生成する必要があって重い。特に桁が増えるとメモリ確保のコストが大きい。




選択肢の追加
preload
参考リンク 【編集】
コメント
 

署名しない

関連ツイート
作成日時:2012/12/06  更新日時:2017/11/01

preload