我有一項任務是儘可能使下列函數精確(速度不是目標)。我必須使用浮法和方法中間矩形。你能提出一些建議嗎?其實,我認爲,這都是關於最小化浮動四捨五入誤差。這就是我所做的:優化浮點運算
typedef float T;
T integrate(T left, T right, long N, T (*func)(T)) {
long i = 0;
T result = 0.0;
T interval = right - left;
for(i = 0; i < N; i++) {
result += func(left + interval * (i + 0.5)/N) * interval/N;
}
return result;
}
'result + = func(left + interval *(i + 0.5)/ N)* interval'和'return result/N;' – 2013-03-16 18:47:58
函數指針調用是否必要?它可以內聯嗎? – Mysticial 2013-03-16 18:48:20
@Mysticial是的,這是必要的。但我不需要速度,我需要精確度,所以沒關係。 – 2013-03-16 18:51:02