上へ 基本事項 ソフトウェア構成 UltraLong構造体 UltraMath FFT プログラミング例 UltraPrecisionユーティリティ FFT試験 レガシ演算速度 FFT演算速度 数値/浮動小数点/精度 定数システム レガシ四則算 FFT乗算 ニュートン法 逆数法 数学関数 時間評価システム 限界値自動決定システム 数学定数算出
| |
多倍長演算ライブラリ(UltraPrecision) |
基本事項 |
最終更新日:2006/05/31 |
●動作環境
- .NET Framework1.0 ランタイムがインストールされていること。
- Win2000、WinXPにて動作確認済み。
- 開発には、Visual Studio .NET2002、Framework 1.0(古っ!)などの開発環境が必要。
- メモリは最低でも256MBは必要。512MB以上あれば申し分ない。
●基本仕様
- 有効桁は、最大100万桁となっている。但し、実用限度はメモリ(仮想記憶が生起されない容量)やCPU性能による。
- 有効桁数(精度)は指定できる。有効桁数とは、小数点以下の桁数ではなく、0 でない値から始まり、0 でない値で終わるまでの桁数のことを言う。
例えば、123060000000000000000000000000000000
や、0.0000000000000000000012306
は、5桁となる。
- 従って、3X10100000000
などは(たった1桁の数値なので)、OKである。乗除算も可能であるが、加減算は注意すること。精度を超えた小数を加減算すると、その値は0
と見なされ(例えば、精度が100桁で、1 + (5.6E+10-120)の演算など)、桁落ちが生じる。
-
また、整数演算を行う場合、有効桁数(精度)以上の指数部になると、加減算にて同じく桁落ちが生じるが、ユーザ責任としている。UltraPrecision
は、整数演算かどうかの区別はしない。
- 演算結果は、公称精度長にされ、正規化される。従って、演算しなければ、システムで許容される範囲でいくらでも長い数値は持てる。
- 独自の10進による浮動小数点方式を採用している。
- 演算による例外は手抜きしており、一切発生しない。
- 重要数学定数(π、e など)は、独自のバイナリファイルで、100万桁を保有しており、指定精度に従って、自動的に切り出される。
●基本方式
-
演算アルゴリスムは古典的)アルゴリズム(以後、レガシ演算と言う)とFFT乗算を採用している。
-
除算は、ある桁数以上では逆数法である。
-
数学関数は、ニュートン法や級数展開で求めている。
演算速度はそんなに期待しないこと。
|