関数電卓を使用しています。そして、可能であれば少し改善したいと思います。アンプでコードを確認します。最も時間のかかる(頻繁に使用される)コードは次のとおりです。
double a = 0.0;
for(j = 0; j < n; j++) a += w[j]*fi[((index[j] + i)<<ldf) + k];
私にとっては、wとfiの内積にすぎません。不思議なんだけど:
- インテル®コンパイラーはそれを自動的に行いますか?(つまり、ループを2つのベクトル化された配列の内積として扱いました。)
- コードを改善する方法はありますか?(つまり、wと同じサイズの別の配列a1を定義することを意味します。そうすれば、乗算されたすべての数値をa1に格納できます(展開されたループ?)。最後に合計を行います。)
- 他の提案?
VisualStudioでParallelComposer2013を使用しています。どんなアイデアでも評価されます!:)