|
|
●概要 本来、この類のものは高速な演算が目標であるが、C言語ではなく、VB.NET で作っている。一般的には、VB では、VC++ MFC(ネイティブコードアプリ) の20〜30% 程度速度は遅くなるといわれている。しかし、近年のPC の高速化のお陰で、科学演算向けであっても、VB はその使用に耐えるようになっているように思える。絶対に言えることは、圧倒的なコード量の差であろう。多分、数十分の1で済んでいる。また、ガベージコレクションのオーバーヘッドが大きいが、ガベージコレクションの効果は言うまでもない。 .NET2005では、演算子(+-/*など)を定義できるが、オペランドがByVal (実体のコピーが生成され、メモリを消費する)のみとなり、多倍長では効率が悪いので利用しない。 ●概略仕様
●定数システム π や e などの数学定数は、100万桁の精度で特別な形式のバイナリーファイルとして保有している。初めて定数の参照があったときに、ファイルから読み出しておく。必要に応じて、公称精度(公称精度+拡張桁)に従った定数を参照できるようにしている。 ●演算時間予測システム 特に数学関数などでは、高い精度での演算時間が長くなる。数時間、数日間などとなる場合がある。MegaPrecision では、実測した基本演算時間を元に、演算内容(ニュートン法や級数展開、四則演算など)を与えると、その演算時間をシミュレーションし予測する機能がある。但し、実行するマシンで測定した値が必要となる。
|