Module:Rational: Difference between revisions

Plumtree (talk | contribs)
m Bugfix for eq()
Plumtree (talk | contribs)
m Semiconvergent fix
Line 86: Line 86:
end
end
local last_error = 1/0
for i = 2, #convergents - 1 do
for i = 2, #convergents - 1 do
last_error = math.abs(p.as_float(convergents[i]) - x)
local n_delta, m_delta = p.as_pair(convergents[i])
local n_delta, m_delta = p.as_pair(convergents[i])
local n_c, m_c = p.as_pair(convergents[i - 1])
local n_c, m_c = p.as_pair(convergents[i - 1])
Line 98: Line 96:
break
break
end
end
local c_error = math.abs(p.as_float(c) - x)
if p.eq(a, c) then
if c_error < last_error then
return 'semiconvergent'
last_error = c_error
if p.eq(a, c) then
return 'semiconvergent'
end
end
end
end
end