ホーム ] PC技術/システム技術 ] VB.NETプログラミング ] なるほどナレッジ ] インフォメーション ]

上へ
基本事項
ソフトウェア構成
UltraLong構造体
UltraMath
FFT
プログラミング例
UltraPrecisionユーティリティ
FFT試験
レガシ演算速度
FFT演算速度
数値/浮動小数点/精度
定数システム
レガシ四則算
FFT乗算
ニュートン法
逆数法
数学関数
時間評価システム
限界値自動決定システム
数学定数算出

多倍長演算ライブラリ(UltraPrecision)

定数システム

最終更新日:2006/06/09

●概要

 定数とは、数学定数で、π や e などを言う。それらは、内外で使用されるが、設定された精度を反映する仕組みが必要となる。

●仕組み概要

 このライブラリは共有なので、New がなく、ユーザの意思による全体的な初期化のタイミングがないので、数学定数は初めて参照された時、一回だけ生成し、その旨のフラグを設ける。その後は、その参照のみとなる。そのため、定数は、内外問わず、全て公開プロパティ経由のアクセスとする。

 その後、ユーザは、任意に精度をPrecision で設定できる。このPrecision により、フラグはリセットされ、次に参照された時、初めて、その精度のものが生成される。 当初Precision設定時に自動的に全ての定数を生成していたが、無駄になる可能性があるので、この方式に変えた。

●初期

 各数学定数のフラグは、0 、即ち、インスタンスなしの状態となっている。

●参照

 その定数のフラグが 0 であれば、UltraPrecisionCommonから、ucPriXX.ulv バイナリファイル(原始定数)より、必要な精度(Precision)で切り出して、定数インスタンスを生成し、フラグを1 にしておく。

●Precision変更時

 ユーザがPrecision プロパティを更新したときは、全てのフラグを0 にする。

原始定数の算出

 この定数システムの元になる定数のことで、予めそれぞれ100万桁の精度で算出している。この原始定数生成は、UltraUtility の機能として備わっている。