ホーム ] PC技術/システム技術 ] VB.NETプログラミング ] なるほどナレッジ ] インフォメーション ]

上へ
わが家のPC環境
PCよもやま話
PC自作講座
PC音楽システム
PC写真システム
Exifファイル入門
多倍長演算ライブラリ
多倍長演算ライブラリ(MP)

多倍長演算ライブラリ(UltraPrecision)

目次

最終更新日:2006/06/22 機能追加

 世の中には、山ほどこの手のライブラリが紹介されているが、このライブラリは、全て、VB.NET にて作成されていることが特徴である(ライブラリをブラックボックスとすれば、利用者には無関係であるが・・・)。速度の点では、Cライブラリに譲るが、原理を理解したり、手軽さは断然優位である。もともと、筆者の興味と自分自身の知識の習得のために始めたものなので、それほど大したモノではない。

 初期版にFFT乗算系を組み込んで、一応の高速化を行った。今までは、別々(バラバラ)に解説していたが、それらをまとめて解説することにした。

 2006/6/1 に、隠し桁方式をやめ、最小公称精度を64桁に変更した。

●概要

基本事項

動作環境
基本仕様
基本方式

ソフトウェア構成

UltraPrecisionクラス
UltraLong構造体
UltraMathクラス
FFTクラス
環境設定

●実行/モジュール

○実行時の注意

 本ソフトウェアは、一部手抜きのため(一部にグローバル的変数があるため)、マルチスレッドやマルチユーザでの動作は不安全である。但し、dllモジュールをそれぞれ、そのアプリ専用にコピーすれば、その限りではない。

○全体手順

  • 実行モジュールをインストールする。
  • 最初に、以下のようにユーティリティを実行する。
     
    • 自動試験で、一通り演算試験を行い、正しいことを確認する。
    • システム設定にて、必要な演算時間テーブルを生成し、自分の環境に合ったシステム変数を決定する。

○ソフトウェア/数学原始定数バイナリファイル

 実行に必要な全ての実行モジュールと原始定数バイナリファイル(100万桁)を以下に提供している。但し、ソースは提供していない。随時バージョンが更新されるので、時々、入れ替えると良い。

 ・実行モジュールダウンロード(UltraPrecision.lzh V7.1.0.0  2006/6/17 更新)

  ・数学原始定数ダウンロード(UltraPrecisionCommon.lzh  V1)

 ○インストール方法

 ここを参照。

●ライブラリプログラミング仕様

 この解説を見れば、一応、自分で多倍長演算を行うアプリを作成できるようになると思っている。但し、仕様は予告なく変更される。

UltraLong構造体

UltraMath

FFT

プログラミング例

●ユーティリティアプリ

 以下の二つがある。クラスライブラリの試験用であるが、便利な機能も付加されている。

UltraPrecisionユーティリティ

FFT試験

●演算速度

 ここで開発したライブラリでの種々の演算速度を実機で測定した結果である。

レガシ演算速度

FFT演算速度

●技術・原理

 アルゴリズムや原理、数学、プログラミング技術、開発の経緯などについて、皆さんの参考となるよう解説している。 第一弾を一通り、試行錯誤的に開発した。少しは全体が見えてきたので、技術解説は徐々に分かりやすく改訂して行く。

数値/浮動小数点/精度

定数システム

レガシ四則算

FFT乗算

ニュートン法

逆数法

数学関数

演算時間評価システム

限界値自動決定システム

数学定数算出