ホーム ] アプリ ] コントロール ] クラスライブラリ ]

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

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

目次

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

●概要

 MegaPrecision は VB.NET での多倍長演算の最高峰を目指すものであるが、実用的かと言われると疑問がある。そこで、実験や研究で実用できる範囲の高精度な科学計算ツールを目的にしたVB.NET 多倍長ライブラリ CompactPrecision をついでに開発した。精度としては4096桁で、公称精度は4000桁としている。

●主な特徴

  • 多倍長語 CompactLong は、構造体ではなくクラスにした。これにて、無駄なインスタンスのコピーがなくなり、終始参照で演算できる。
  • 語長は固定となっている。これにて、配列の再生成を極力避けることができ、実行中のメモリ消費を抑えた。
  • 精度は固定であるが、コンパイル時に変更できる。
  • 数学原理はMegaPrecision とほぼ同じ。
  • FFT

数千桁でも乗算は、やはりFFT乗算の方が早いので、FFT乗算と逆数除算機能は持たせている。しかし、CompactPrecision は精度が高々数千桁なので、400万桁まで扱えるFFTライブラリは重過ぎる。今回、CompactFFT なる小規模なFFTライブラリを開発した。初期化にて、データ数 2L のL を指定できるようにした。 CompactPrecision では、L = 13 としている。これにて、Sinテーブルなどは従来の百分の1になっている。新機能 線形畳込みを付加し、Radix8(1億進数) 入力、Radix8 出力ができるようにした。

多倍長語 CompactLongの構造

  1億進数のBCD による浮動小数点方式である。基本的に、MegaLong と同じであるが、仮数部は、固定長のInteger配列で構成され、また指数部をLong にしたので、扱えるオーダは格段に広がった。公称精度+拡張精度からなる。

●実行モジュール

 必要な各dll と、試験用ユーティリティソフトを提供している。これにて、自分でプログラミングができる。

 ダウンロード

●技術解説

 技術的には、ほぼMegaPrecision と同じであるが、必要に応じて以下に解説している。

数学定数システム

 桁数が少ないので、実行時に算出できるシステムにしている。

○数値変換

四則演算

 仮数部の配列が固定長なので、MegaPrecision と若干異なる。

数学関数

 MegaPrecision とほぼ同じであるが、桁数が短い分、高速化にこだわる必要はない。