loop over a very long container (millions elements)
{
each element compute 8 integers: k1,k2,k3,...,k8
call function func(k1,k2,k3,...,k8)
}
container is a std::vector, element is a long integer
each k can only take {0,1,2,..5} six values.
func is a simple expression of complex number calculation,
involves std::conj and std::exp
速度を上げるために、「func」のすべての可能な結果を配列にキャッシュし、代わりに func_array[k1][k2][k3]... を呼び出します。しかし、単純に func_array を std::complex func_array[6][6][6]... のように定義すると、プログラムはスタック オーバーフローで停止します。
スピードアップするためのより良い解決策はありますか?