[ODE] Length calculation
oder at eleks.lviv.ua
Fri Oct 12 01:28:01 MST 2007
----- Original Message -----
From: "Jon Watte (ODE)"
To: "Oleh Derevenko"
Sent: 12 жовтня 2007 р. 05:30
Subject: Re: [ODE] Length calculation
> Oleh Derevenko wrote:
>> Why? Multiplications and divisions do not introduce substantial error. At
>> the same time, length calculation, as seen from dNormalize3, is much more
>> precise after you divide by largest vector component.
> Do the analysis: it doesn't help. It may hurt. With the normal
> formulation, you do math on the basic quantities. With the "normalized"
> components, multiplied by the largest value, for very long vectors, you're
> getting small-by-large multiplication (not any more precise), and for very
> short vectors you're getting division-by-small-value (not any more
Could you explain why is small-by-large multiplication not precise? In FPU
numbers are stored in exponential form. The mantissa is always in range
[1.0b...10.0b). So, you always multiply mantissas from range [1..2) and do
the addition for integer exponents. Why is it less precise to multiply small
by large rather than two numbers of same order? There is only loss of
precision if one or both numbers are denormalized. But I don't think we
should consider operating denormalized numbers to be a common practice. It's
a FPU exception condition, after all, and denormalized numbers are supported
just to save at least something from failed computation.
-- ICQ: 36361783
More information about the ODE