|
●概要 dll の試験用アプリであるが、モジュールの動作確認にも使用できる。 ●実行ファイル Test_CompactPrecision.exe 。 ●メニュー ○機能試験 ○演算時間 ●解説 ○機能試験 ・CompactLong機能 CompactLongクラス単独機能の試験を行う。Newや他のメソッドを確認する。
・数学演算 四則演算、数学関数などに値を与えて実際に演算させる。
変数A、B には、数学定数、pi(π)、dpi(2π)、hpi(π/2)、qpi(π/4)、e、log10 なども入力できる。他のメニューも同じ。
・演算検証 演算した値が正しいかどうか検算する。別式で計算したり、公式で確認したり、正逆関数での検算を行っている。変数は、固定と乱数で行っている。ここで言う正しいとは、比較される値が先頭から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 LMul、FMul、LDiv、RDiv などを混在して演算している。結果が、C1 = C2 = C3 を確認する。 指数/対数系は、10組の乱数で確認する。 ・e定義式 (ネイピア数2 を参照) ○演算時間 ・四則演算時間 四則演算(従来方式とFFT方式)を乱数にて演算させ、その時間を計測している。桁数は、演算に使用した値の桁数である。配列は固定長であるが、実際の値の桁数をみて動的な演算となっているので、桁数によって時間は変化する。
・数学関数演算時間 (一部のみ)
|