最終更新: 2022/9/16
シンプルな区間演算ライブラリ
柏木 雅英
kvライブラリの区間演算(interval.hpp)は、両端の数値の型をdouble以外のものに変更可能になっていたり、
丸めの向きを変える方法が差し替えられるようになっていたりするため、
単に区間演算をしたいだけなら少し大げさに思える。
そこで、kvライブラリのinterval.hppを元に単純化した区間演算ライブラリを作成した。
ダウンロード: interval-simple-0.4.55.tar.gz (2022年9月16日公開)
特徴は以下の通り。
-
kvライブラリの区間演算の部分を切り出して簡単にしたもの。
-
テンプレートを排除した。従って内部型はdoubleのみだが、プログラムが読みやすくなっている。
-
テンプレートを排除したおかげでboostに依存せず、単体で使える。
-
単一ファイルライブラリ。必要なファイルはinterval.hpp一つだけ。
-
内部型のカスタマイズが出来ないこと以外は、kvライブラリに含まれるinterval.hppと機能は同等。
数学関数も多数備えている。
-
丸めの変更は単純にfesetroundを使っている。
([2016/3/16] Visual C++はfesetroundに致命的なバグがあることが分かったため、
単純さとは反するが、Visual C++の場合に限って_controlfp_sを用いるようにした。)
-
文字列との方向丸め付き相互変換機能も持っている。
従って、文字列からその文字列の表す数値を含むように区間を初期化できるし、
表示も真の値を含むように外側に丸めるようになっている。
-
volatileを使ったコンパイラの最適化による数値エラー対策もきちんとやっている。
シンプルな区間演算ライブラリ