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

## 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

```