假设我们在c++10^(-15)
中有一个小(大约)双精度数的数组。如果我们按顺序计算这个数组中数字的总和,例如
double sum = 0;
for (int i = 0; i < n; i++) sum+=array[i];
我们得到了一些价值x
。
但是,如果我们将一个数组分成若干部分,然后计算每个部分的总和,然后将所有部分总和相加,我们会得到一些值x2
,该值接近x
但不完全x
。所以我在计算总和时失去了准确性。
有人知道如何通过将这些数字分成一些部分来计算小双数的总和而不会失去准确性吗?