kvライブラリを0.4.40にアップデートしました。
今回は、T大のT先生の依頼によるODE solver仕様変更が含まれています。その他、psaのドキュメントを最新にしたり、kraw_approxの1変数版を追加したりしました。
ODE solverの仕様変更は以下のようなものです。常微分方程式の計算を行なうodelong_maffineなどのodelong系の関数では、計算しながら何かをさせるためのcallback関数を指定する機能があります (正確に言うと、()演算子を持つcallback用のオブジェクト)。これの戻り値は今まではvoidだったのですが、それをboolに変更してその値をチェックするようにし、もしfalseなら計算を中止するようにしました。これにより、終了条件として時刻でなく、「値が何かの条件を満たしたら終了」のようなことが出来るようになりました。これは便利になっているのですが、もし今までのversionのkvを利用していてcallback関数を継承によりカスタマイズする機能を使っていた場合、コンパイルエラーになってしまうという申し訳ないことになってしまいました。修正は簡単で、operator()を定義する関数の戻り値をboolに変えて末尾にreturn true;を補うだけです。
こういうことはなるべく起きないように仕様を考えるときは気をつけていたのですが、今回はメリットが仕様変更のデメリットを上回ると考えてこうすることに決心しました。恐らくこの機能を実際に使っているのはT大のT先生だけだと思いますが、もし他に使っている方がいらっしゃれば大変申し訳ありません。
また、githubの方のソースコードも最新になっています。結局ローカルの開発体制をgitに移行するには至らず、version up時にまとめてgithubを更新するような何とも無意味な状態になっています。新しいものに馴染むのは難しい…