are you imposing that the division need be performed on _each_ iteration?
y = y1 + (y2-y1)*x/(x2-x1)
is a linear function
y = ax + b
to keep the error within the precisional error margins of the media used (i.e.
not to have
any additional cumulative error) all you need to do is to use a non-incremental
evaluator,
and you end up with 1x multiplication and 1x addition per iteration, no
unit-errors
whatsoever*, and last but not least you end up with no conditions in the inner
loop.