|
●概要 桁数が少ないので、実行時に算出できるシステムにしている。 ●方式 実行時に都度算出するのではなく、未算出であれば演算して求める方式になっている。一度算出した定数はバイナリファイルとして特定のフォルダに保存され、次回からは、そのファイルから読み込まれる。 定数参照要求があると、以下の処理が暗黙的に行われる。 ・定数はメモリにあるか?
明示的に予め準備しておくには、SetUpCompact メソッドを最初に実行すれば良い。 ●定数参照 プロパティで参照できるが、そのままでは、たとえば、ユーザが、A = PI とし、後、A.SetValue(XX) などとすると、内部にあるPI まで変化してしまう。これでは不都合なので、プロパティを返すときは、 Return m_PI.Clone として、内部にあるインスタンスPI を直接渡さなく、インスタンスのコピーを返している。 ●定数生成 数学定数は、その精度を4096桁まで保証するため、内部では、一時的に8192桁にして演算している。 ○e 求める桁数が比較的少ないので、直接級数で求めている。e = Σ(1/k!) である。マシンによるが1秒前後の時間が掛かる。 ○π 求める桁数が比較的少ないので、マチンの公式で求めている。マシンによるが1秒前後の時間が掛かる。 ○ln10 級数でそのまま演算するとかなり時間が掛かるので、差分法で求めている。初期値のln10 近似値[ln10]は組込み関数では15桁なので、XP関数電卓で求めた32桁の値を採用している。 途中で現れる、e[ln10]の演算は、[ln10]を1億分の1し、級数で算出して、1億乗して求めている。マシンによるが数秒の時間が掛かる。
|