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}}==
|