ホーム ] 実行時間計測ラブラリ ] EXIF情報ライブラリ ] 文字式演算 ] クイックソートライブラリ ] 多倍長演算ライブラリ ] 多倍長演算ライブラリU ] 画像処理ライブラリ ]

上へ
多倍長語の構造
プログラミング仕様
インストール
ユーティリティ
数学定数システム
四則演算
数学関数

多倍長演算ライブラリU(CompactPrecision)

ユーティリティ

最終更新日:2007/04/26 新規

●概要

 dll の試験用アプリであるが、モジュールの動作確認にも使用できる。

●実行ファイル

 Test_CompactPrecision.exe 。

●メニュー

○機能試験

○演算時間

●解説

○機能試験

・CompactLong機能

 CompactLongクラス単独機能の試験を行う。Newや他のメソッドを確認する。


結果:最初は固定小数点表示、次に指数表示され、その下にDescription

・数学演算

 四則演算、数学関数などに値を与えて実際に演算させる。


9/7 を実行したところ

変数A、B には、数学定数、pi(π)、dpi(2π)、hpi(π/2)、qpi(π/4)、e、log10 なども入力できる。他のメニューも同じ。


2π を入力(dpi でもOK)4096桁の値が入力される。

・演算検証

 演算した値が正しいかどうか検算する。別式で計算したり、公式で確認したり、正逆関数での検算を行っている。変数は、固定と乱数で行っている。ここで言う正しいとは、比較される値が先頭から4000桁が等しいとしている。級数やニュートンでは全桁が一致することはない。

 例えば、値A、B が等しいことは、

 If Comp(Round(LDiv(A, B)), 1) = CompactRelation.Equal Then → 等しい

となっている。例えば、等しい時、LDiv(A, B) = 0.99999999999999999999999・・・・・99999999XXXXX と、少なくとも4000個以上の9 が並ぶことになる。


三角関数の検証例

 四則ランニング試験は、停止ボタンが押されるまで試験が繰り返される。演算内容は、符号、指数、仮数部のすべてを乱数で生成し、以下の三つの値を計算する。三つは、数学的に同じ計算となる。

 C1 = ((A + B) * B)/A
  C2 = (A * B + B * B)/A
  C3 = (A + B) *(B / A)

 LMul、FMul、LDiv、RDiv などを混在して演算している。結果が、C1 = C2 = C3 を確認する。

 指数/対数系は、10組の乱数で確認する。

・e定義式

 (ネイピア数2 を参照)

○演算時間

・四則演算時間

 四則演算(従来方式とFFT方式)を乱数にて演算させ、その時間を計測している。桁数は、演算に使用した値の桁数である。配列は固定長であるが、実際の値の桁数をみて動的な演算となっているので、桁数によって時間は変化する。


FFT系演算時間の例

・数学関数演算時間

 (一部のみ)


IPowerの指数による演算時間