pocketpy/3rd/math/src/fsum.c
2025-05-21 21:27:26 +08:00

16 lines
232 B
C

#include "libm.h"
double fsum(double* aptr, int n)
{
/*Kahan sum for float addition*/
double sum = 0, C = 0, Y, T;
for (int i = 0; i < n; i++)
{
Y = aptr[i] - C;
T = sum + Y;
C = T - sum - Y;
sum = T;
}
return sum;
}