У меня есть задача сделать такую функцию максимально точной (скорость не является целью). I :float и метод средних прямоугольников. Не могли бы вы что-нибудь предложить? На самом деле, я думаю, все дело в минимизации ошибок округления поплавка. Вот что я сделал:Оптимизация вычислений с плавающей запятой
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
@ Мистическое да, это необходимо. Но мне не нужна скорость, мне нужна точность, так что все в порядке. –