avr-gcc-list
[Top][All Lists]
Advanced

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

Re: [avr-gcc-list] error with acos() ?


From: Jamie Morken
Subject: Re: [avr-gcc-list] error with acos() ?
Date: Sat, 27 Jul 2002 18:38:59 -0700

Hi,

Sorry to reply to my own email :)

I think I may have figured out the problem with acos(x);
acos(x)=atan2(sqrt(1-x^2),x);

the atan2 has the arguments backwards I think.
atan2(x,y) should be atan2(y,x)

   acos(x)=2*atan(sqrt((1-x)/(1+x)))       x>=0
          =pi - 2*atan(sqrt((1+x)/(1-x)))  x<0

   atan2(y,x)=atan(y/x)       x>0
   atan2(y,x)=atan(y/x)+pi    x<0, y>=0
   atan2(y,x)=pi/2            x=0, y>0
   atan2(y,x)=atan(y/x)-pi    x<0, y<0
   atan2(y,x)=-pi/2           x=0, y<0
   atan2(0,0) is undefined and should give an error.

Maybe the checking of x to 0 is mixed up somehow?

cheers,
Jamie Morken

> Hi,
> 
> I am using acos() and think there is an error with it.
> 
> Here is the line I use:
>    
> temp4 = acos(0.999911);
> 
> This should return 0.013316 I think,
> but it returns 0.0878546
> 
> I am using avr-gcc 3.2
> 
> cheers,
> Jamie Morken
> 
> 
> 
> avr-gcc-list at http://avr1.org


avr-gcc-list at http://avr1.org



reply via email to

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