|
●概要 多倍長演算ライブラリ CompactPrecision の演算性能と正確性を検査するためにユーティリティとして作成したプログラムで、オイラーの定義式により生成した e と、級数で生成した e との一致度を計測するものがある。その結果を紹介する。 ●定義 プログラムでは、 ( 1 + 1/Y)Y の演算式で、Y = 10X とし、 X を、5 〜 2000 まで変化させている。102000 乗では、2000桁まで正しい e が求められると期待できる。 ●結果 下表が得られた。期待通り、X桁まで正しい e が算出できた。
定数とは、級数でもとめた4096桁の正しい e のこと。差(誤差)の指数が即ち一致した桁数となる。 ●使用したコード Dim One As New CompactLong(1) X.SetValue(桁数)
'欲しい桁数をCompactLong値にする IPower(A, B) は、任意の実数 A を、整数B 乗する関数である。この場合、B はものすごく大きな数なので、CompactLongの整数を用いている。冪乗演算は、二進展開法で行っているので、短い時間で、102000 乗を演算できている。 ものすごく大きな数の冪乗なので、演算精度はかなり悪くなる。4096桁精度の多倍長語では、102050 乗程度が限界となる。 |