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]...,程序会在堆栈溢出时死掉。
有没有更好的加速解决方案?