Another thing to consider, there is an intrinsic rounding problem when using
floating point numbers in the Palm OS.  I ran into numerous rounding
problems when using some non-trig functions.  I got around them by locating
functions that seem to inject the most error and adding a small rounding
correction.

-----Original Message-----
From: Mark Nudelman <[EMAIL PROTECTED]>
To: [EMAIL PROTECTED] <[EMAIL PROTECTED]>
Date: Tuesday, July 27, 1999 3:04 PM
Subject: Re: Cos() Math question: Slightly off topic


>"Michael S. Davis" wrote:
>> I use MathLib for Trig functions.  Sin and Tan seem to work fine.  But
>> Cos has a quirk.  cos(0)=1 but cos(90)=2.8328e-16.  Now I know that is
>> headed toward zero but it's not zero.  I have looked at many Palm
>> calculator applications and find that this is consistent on every calc
>> that I have tested.  One reports cos(90) as 6.123e-17 another 2.8328e-16
>> one with 8.9e-15.  I did find one that reported zero.
>
>This is a problem in MathLib.  Most implementations of trig functions
>have a similar problem when the argument is outside the "canonical"
>range.  Sin and tan have the same problem as cos with certain arguments;
>try sin(180) for example, or tan(180).  Unc
>(http://www.flash.net/~marknu/unc) is one calculator that does not have
>this problem.  What I do is normalize the argument of sin and tan so it
>falls within the canonical range of -90 to +90 degrees.  Cos(x) is just
>calculated as sin(90-x).
>
>Understand, however, that this isn't really a bug in MathLib.  All trig
>calculations have a certain intrinsic error due to the nature of
>floating point arithmetic.  MathLib's result for cos(10) is just as
>"incorrect" as cos(90).  It's just that we humans can recognize a number
>that's slightly different from zero more easily than a number that's
>slightly different from 0.984807753012208.
>--Mark
>


Reply via email to