It’s a pretty neat trick too, and definitely a hard default to argue against. I was just noticing that each pass of the pairwise sum makes a partial Kahan sum on the remaining values 50% cheaper
Another approach
function finiteDif_sum(arr, d= 0.0)
x = 0.0; y=0.0;
y += d;
for i in arr
x = x + x-y + d + i; ## +y-x -d ?
y = y + i + y + i - x - d; ## and + x - y - i + d ?
end;
[x,y - d]
end;
Add- might’ve gotten the x-y around the wrong way