avr-libc-dev
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [avr-libc-dev] Re: Add items on TODO


From: Joerg Wunsch
Subject: Re: [avr-libc-dev] Re: Add items on TODO
Date: Wed, 30 Oct 2002 13:19:33 +0100
User-agent: Mutt/1.2.5i

As Theodore A. Roth wrote:

[the asin() problem]

> My investigation seemed lead to there not being a clear
> understanding of the format of the floats. gcc uses ieee format
> floats so 1.0 looks like 0x3f800000, while the asin() implementation
> seems to think 1.0 is 0x7f000000.

Nope.  asin() uses 0x3f800001 to denote a ``number slightly larger
than 1.0''.  This is correct.  The 0x7f you're seeing atop is masking
out the sign of the operand.  The 0x3f800001 is micro-optimized and
not displayed completely, i. e. the third byte is taken from
__zero_reg__ instead (obfuscated as "rT1c" in the source).

So the problem is indeed that the implemented algorithm becomes fairly
inaccurate for small numbers.

-- 
J"org Wunsch                                           Unix support engineer
address@hidden        http://www.interface-systems.de/~j/




reply via email to

[Prev in Thread] Current Thread [Next in Thread]