整数、実数、有理数、複素数クラスのソ−ス
多重精度(多倍長)整数クラス Mint, 実数クラス Fint およびそれらのクラスを利用した 有理数クラスと 複素数クラスのソ−スが含まれています.
整数論への応用を意図して作成され, 最大公約数, 平方剰余記号といった整数論用関数も定義されています. このクラスの応用として、素因数分解プログラムを添付しました.
また, 特化された円周率計算のようなプログラムに較べれば, 計算可能な桁数やスピ−ドにおいては劣りますが, 数万桁の実数計算もそこそこできます.平方根,自然対数, 三角関数といった初等関数も一通りは用意されています.
加減乗除の基本関数はアセンブラを使って書かれていますので, C++ のみで記述するよりは高速になって, サイズ的にも小さくなっています. そのぶん汎用性に欠けますが, この種の計算には正確さとともに高速性を求められるため, 致し方のないところでしょうか. むろん特定の目的のために機械語を使って書かれたプログラムよりは遅いが, クラスによる記述の容易さのおかげで, アセンブラ あるいはC言語でコ−ドを書くより, 結果を得るまでの時間を節約できるでしょう.
扱える数の桁数には制限がありません. 計算過程で あふれが生じるときは領域を取り直しますので, メモリが許すかぎりの大きさの数が特別な配慮なしに扱えます.また実行時に動的に精度を変更することもできます.
ソフト名: | 多重精度数クラスの C++ソース |
---|---|
動作OS: | Windows 95 |
機種: | 汎用 |
種類: | フリーソフト |
作者: | 苫米地 聰 |