Minkowski question-mark function: Difference between revisions

Content added Content deleted
Line 532: Line 532:
y, bits = fldmod(x, 1)
y, bits = fldmod(x, 1)
lo, hi = [0, 1], [1, 1]
lo, hi = [0, 1], [1, 1]
while (y + /(lo...)) != (y + /(hi...))
while (y + /(lo...)) < (y + /(hi...))
bit, bits = fldmod(2*bits, 1)
bit, bits = fldmod(2bits, 1)
bit > 0 ? (lo .+= hi) : (hi .+= lo)
bit > 0 ? (lo .+= hi) : (hi .+= lo)
end
end
y + /((lo .+ hi)...)
y + /(lo...)
end
end