タグ

数学とライブラリに関するiwwのブックマーク (5)

  • MPFRについて:任意精度数値計算ライブラリ

    以前、1億桁のπの計算のためGMPを使いました。しかし、これには四則演算しか存在していなくて、通常の科学計算にはとても使えませんでした。 その後、調べていたらGMPを元に三角関数等をできるようにした、MPFR、MPCがありました。これら3つのライブラリは何とgccをビルドするのに必要なパッケージだとかで(何に使ってるんだ?)、最新のgccを使いたければインストールしておかないといけません。依存関係があり、GMP←MPFR←MPCという感じになるので、その順番にインストールしていかないといけません。大雑把に概要をいうと、以下のようになります。 ・GMP 任意精度算術演算ライブラリ ・MPFR こちらも任意精度の浮動小数点数演算ライブラリ(各種関数あり) ・MPC 複素数演算ライブラリ MPFRの簡単なサンプルを以下に示します。(これらのライブラリはCなのに注意) /* mpfrの使い方を調べ

  • 任意精度計算ライブラリ(GMP)の使い方 - pyopyopyo - Linuxとかプログラミングの覚え書き -

    プログラミング時に注意すべき点の一つに,計算精度の問題があります. たとえばC/C++だと,doubleで計算しても有効桁数は15桁程度(10進数で)しかありません.その結果,以下のような状況で間違った計算結果が出てしまいます. 取り扱う数値が15桁を越える場合 取り扱う数値が7桁を越える場合 たとえば8桁同士の掛け算が行われるとその結果は最大16桁になります.double型の変数には15桁程度の情報しか保存できないので,下位1桁の情報は棄てられます. 取り扱う数値の最大値と最小値に,15桁の以上の差がある場合 たとえばC言語のdouble型で(1.0 + 1e-16)を計算すると結果は 1.0 になります. これら計算精度の問題を避ける方法の一つにGMPというライブラリを使う方法があります。以下ポイントをまとめます。 GMPとは GMP(GNU Multiple Precision li

    任意精度計算ライブラリ(GMP)の使い方 - pyopyopyo - Linuxとかプログラミングの覚え書き -
  • 任意精度演算 - Wikipedia

    任意精度演算(にんいせいどえんざん)[1]とは、数値の精度を必要ならいくらでも伸ばしたりできるような演算システム(実際上は利用可能なメモリ容量に制限されるが)による演算である。 概要[編集] 多倍長整数(たばいちょうせいすう)などを内部処理に利用し、必要な桁数の浮動小数点計算を行う。固定長の整数や一般的な固定精度の浮動小数点方式は、ハードウェアで高速に処理できるのに対し、任意精度演算はソフトウェアで実装され、重い処理を必要とする。十進の0.1を2進で表現しようとする場合のように、有限の桁数では表現し切れない場合もあることから、2進でなく十進で処理するものや、有理数演算を併用したりもする。 多倍長演算(たばいちょうえんざん)[2]とも言うが、プログラミング言語によっては、多倍長整数 (特に区別する場合は bigint などと言う) の名前が bignum であることもある。 最近のプログラミ

  • Blitz++

    サービス終了のお知らせ いつもYahoo! JAPANのサービスをご利用いただき誠にありがとうございます。 お客様がアクセスされたサービスは日までにサービスを終了いたしました。 今後ともYahoo! JAPANのサービスをご愛顧くださいますよう、よろしくお願いいたします。

  • Blitz++メモ・お茶づけバージョン

    <Blitz++> 公式 Documentation より Example Programs の方が頼りになる。 Blitz++はC++の数値計算用ライブラリ。 Debian/Ubuntuなら、ふつーにapt-getできる。 コンパイル時は -lblitz を付ける。 Arrayクラスは、型と階数を指定できる一般ベクトルクラス。 例: #inclide <blitz/array.h> using namespace blitz; Array<double,2> Matrix(2,2); //各要素がdoubleの2×2の正方行列(2階テンソル)。 Array<double,2> A(2,2), B(2,2), C(2,2); //このあと適当に初期化 firstIndex i; secondIndex j; thirdIndex k; //添字に使う文字を指定する C = sum(A(i,

  • 1