我已經實現了一個算法,該算法在某些時刻需要計算向量元素的功效總和。權力是一個積極的雙重,在循環過程中不變。我想通了,這個計算是目前我的程序的瓶頸,不知道是否有一種方法可以加快下面的代碼片段:優化具有常數雙指數的權力總和
double SumOfPowers(std::vector<double>& aVector,double exponent)
{
double help = 0;
size_t sizeOfaVector = aVector.size();
for (size_t k = 0; k < sizeOfaVector; k++)
{
help += std::pow(aVector[k], exponent);
}
return help;
}
我有一種感覺,就好像一個可以利用的事實,即指數在循環過程中不變,並減少昂貴的std :: pow調用。有沒有人知道更好的實現方式,或者是否有可以使用的庫函數來完成這項工作?
我會首先檢查循環是否是向量化的。 – Petr
@Petr:我該如何檢查? –
你的矢量有多少個條目? –