私のコードでは、次の関数から値を継続的に計算する必要があります。
inline double f (double x) {
return ( tanh( 3*(5-x) ) *0.5 + 0.5);
}
プロファイリングは、プログラムのこの部分がほとんどの時間を費やしている場所であることを示しています。プログラムは数か月ではなくても数週間実行されるため、この操作を最適化し、ルックアップテーブルの使用を検討しています。
ルックアップテーブルの効率は、テーブル自体のサイズと、テーブルの設計方法に依存することを私は知っています。現在、100 MB未満は使用できず、2GBまで使用できます。行列の2点間の値は、線形補間されます。
ルックアップテーブルを使用すると、計算を実行するよりも高速になりますか?また、N次元マトリックスを使用する方が1-D std :: vectorよりも優れているでしょうか。また、超えてはならないテーブルのサイズのしきい値(ある場合)はどれくらいですか。