Я хочу изменить ниже код Kahan sumation c++ для вычисления суммы квадрата массива. По умолчанию этот код вычисляет сумму массива.
T reduceCPU(T *data, int size)
{
T sum = data[0];
T c = (T)0.0;
for (int i = 1; i < size; i++)
{
T y = data[i]- c;
T t = sum + y;
c = (t - sum) - y;
sum = t;
}
return sum;
}
должен ли я редактировать, как показано ниже?
T y = data[i]*data[i] - c;
Указанное вами изменение - это точная копия строки 7. Также вы бы не вернули сумму суммы, или я не понимаю, что спрашивается?