|
|
●概要 定数とは、数学定数で、π や e などを言う。それらは、内外で使用されるが、設定された精度を反映する仕組みが必要となる。 ●仕組み概要 このライブラリは共有なので、New がなく、ユーザの意思による全体的な初期化のタイミングがないので、数学定数は初めて参照された時、一回だけ生成し、その旨のフラグを設ける。その後は、その参照のみとなる。そのため、定数は、内外問わず、全て公開プロパティ経由のアクセスとする。 その後、ユーザは、任意に精度をPrecision で設定できる。このPrecision により、フラグはリセットされ、次に参照された時、初めて、その精度のものが生成される。 当初Precision設定時に自動的に全ての定数を生成していたが、無駄になる可能性があるので、この方式に変えた。 ●初期 各数学定数のフラグは、0 、即ち、インスタンスなしの状態となっている。 ●参照 その定数のフラグが 0 であれば、UltraPrecisionCommonから、ucPriXX.ulv バイナリファイル(原始定数)より、必要な精度(Precision)で切り出して、定数インスタンスを生成し、フラグを1 にしておく。 ●Precision変更時 ユーザがPrecision プロパティを更新したときは、全てのフラグを0 にする。 この定数システムの元になる定数のことで、予めそれぞれ100万桁の精度で算出している。この原始定数生成は、UltraUtility の機能として備わっている。 |