IMathLib-ソースコード-
数学型の解説については以下の記事を参照。
Iroha Math Library for C++(IMathLib)
IMathLibはC++17で動作する数値計算を直感的に行うためのライブラリです。このライブラリ単体では数学型や数学関数は一切定義されないためため、それらが予め定義されたIMathLibExも提供しています。また、それに付属するOpenGLとSDL2をラップしたIMadiaLibをもちいることでグラフィカルな処理を実現します。
現在はテスト版であり、正式なバージョンは公開していません。
ディレクトリ構成について
"develop"ディレクトリはIMathLibの開発版のものです。作りかけの機能等を色々と試験しており、それらに関する機能を用いるとコンパイルエラーが生じるため、利用するべきではありません。"discard"ディレクトリは没になった機能たちの墓場です。
α.β.γの形式で記述されているディレクトリはIMathLibのバージョンごとのソースファイルです。"archive"ディレクトリはα.β.γの形式で記述されているディレクトリのアーカイブ(ZIP)されたものがあります。
可能となること
例えば、標準ライブラリにおけるstd::complex
では
auto temp = std::complex<float>(1, 2) + std::complex<double>(3, 4);
といった操作はできないが、IMathLibExにおけるiml::complex
を用いることで
auto temp = iml::complex<float>(1, 2) + iml::complex<double>(3, 4);
のような記述ができるようになります。また、temp
の型はiml::complex<double>
です。
このように、あらゆる演算が直感的に記述可能になります。