Предположим, что у нас есть массив небольших (около 10^(-15)
) двойных чисел в С++. Если мы вычислим сумму чисел в этом массиве последовательно, например
double sum = 0;
for (int i = 0; i < n; i++) sum+=array[i];
получаем значение x
.
Но если мы разделим массив на некоторые части, а затем вычислим сумму в каждой части и после этого добавим все частичные суммы вместе, получим некоторое значение x2
, которое близко к x
, но не точно x
. Поэтому я потерял начисление при расчете суммы.
Кто-нибудь знает, как вычислить сумму небольших двойных чисел, разделив эти числа на некоторые части без потери точности?