Kahan summation: Difference between revisions

Kahan summation en Yabasic
(Kahan summation en FreeBASIC)
(Kahan summation en Yabasic)
Line 2,368:
Delta = 1.1102230246252e-16
</pre>
 
 
=={{header|Yabasic}}==
{{trans|FreeBASIC}}
<lang Yabasic>sub KahanSum (a, b, c)
sum = 0.0
c = 0.0
for i = 1 to a
y = i - c
t = sum + y
c = (t - sum) - y
sum = t
next i
return sum
end sub
 
sub epsilon()
eps = 1
while (1 + eps <> 1)
eps = eps / 2.0
wend
return eps
end sub
 
a = 1.0
b = epsilon()
c = -b
 
s = (a + b) + c
k = KahanSum(a, b, c)
d = k - s
print "Epsilon = ", b
print "(a + b) + c = ", s
print "Kahan sum = ", k
print "Delta = ", d
end</lang>
{{out}}
<pre>
Epsilon = 1.11022e-16
(a + b) + c = 1
Kahan sum = 1
Delta = 1.11022e-16
</pre>
 
 
=={{header|zkl}}==
2,130

edits