2015/03/07(土)kv-0.4.17
主な変更点は、
- 特殊関数の説明文を書いた。特にガンマ関数の計算方法の詳細を書いた。
- 内部で例外として使っていたrange_errorをdomain_errorに変更。
- 数学関数を含む常微分方程式が正しく解けないことがあったバグを修正。
2番めの例外についてちょっと補足しておきます。区間演算やaffine arithmeticなどでゼロ除算や負の数の平方根などが出てきたとき、プログラムをただちに停止せず例外をthrowするようになっています。そして、常微分方程式や全解探索などの上位プログラムでは解くべき問題の関数評価をするときにtry-catchでこの例外をcatchし、例外が起きてもすぐに諦めずにステップ幅を小さくしたり区間を分割したりするような実装になっています。この例外として、0.4.16以前はrange_errorという例外を使っていたのですが、どうやらdomain_errorの方がふさわしそうなので、プログラム全体でdomain_errorを使うように変更しました。
普通に使ってるだけならあまり関係のない変更ですが、例えばaffine.hppをコピーして改造して使っているような方がいれば、同じように変更した方がいいでしょう。単に一括置換するだけで大丈夫ななずです。
忙しい1月2月を過ぎて、やりたいこともいろいろ溜まっているのでここから頑張ろう。