私は、Levenverg-Marquardt アルゴリズムを使用して倍精度でフィッティングを行う、非常に複雑で洗練されたデータ フィッティング プログラムを持っています (基本的に、フィッティング クラスはテンプレート化されていますが、インスタンス化して double にします)。フィッティング プロセスには以下が含まれます。
- 誤差関数 (カイ 2 乗) の計算
- 線形方程式系を解く (そのためには lapack を使用します)
- データに適合させたいパラメータに関する関数の導関数の計算 (通常は 20 以上のパラメータ)
- 関数値を連続的に計算します。関数は、いくつかの高調波を持つ正弦関数と指数関数の複雑な組み合わせです。
私の同僚は、少なくとも 10 倍高速に整数を使用することを提案しました。私の質問は次のとおりです。
- そのような改善が得られるというのは本当ですか?
- すべてを整数に変換しても安全ですか? そして、これの欠点は何ですか?
- この問題全体について、どのようなアドバイスがありますか? あなたならどうしますか?
このプログラムは、信号からオンラインでいくつかのパラメーターを計算するように開発されているため、プログラムはできるだけ高速である必要がありますが、すべてを整数に変換するプロジェクトを開始する価値があるかどうか疑問に思っています。