コードのシリアルボトルネックを構成する次のタイトなループがあります。理想的には、これを呼び出す関数を並列化しますが、それは不可能です。
//n is about 60
for (int k = 0;k < n;k++)
{
double fone = z[k*n+i+1];
double fzer = z[k*n+i];
z[k*n+i+1]= s*fzer+c*fone;
z[k*n+i] = c*fzer-s*fone;
}
このコードを助けることができるベクトル化やいくつかの邪悪なインラインなど、実行できる最適化はありますか?
三重対角行列の固有解を探しています。http://www.cimat.mx/~posada/OptDoglegGraph/DocLogisticDogleg/projects/adjustedrecipes/tqli.cpp.html