Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Ada 95 ARCTAN function

821 views
Skip to first unread message

saag

unread,
Mar 1, 2007, 1:58:25 PM3/1/07
to
Does the ARCTAN(y,x) function in the ADA.NUMERICS package provide the
same results an atan2 function call in c? I'm trying to find out if
Ada supplies an atan2 function (that gives an appropriate answer based
on the quadrant the original point lies in)

thanks

Jacob Sparre Andersen

unread,
Mar 1, 2007, 2:38:48 PM3/1/07
to
"saag" <saa...@yahoo.com> writes:

You can find the specification of how function Arctan works on
<http://www.cs.fsu.edu/~baker/ada/arm_95/RM-A-5-1.html>.

I don't know where I can find the corresponding specification for the
C function atan2(), so I can't give you a proper comparison.

Greetings,

Jacob
--
I'm giving a short talk at Game Developers Conference (Mobile
Game Innovation Hunt) Monday afternoon:
http://www.gdconf.com/conference/gdcmobile_hunt.htm

Dmitry A. Kazakov

unread,
Mar 1, 2007, 2:43:20 PM3/1/07
to

A.5.1 (11) states that arctan (y, x) yields the result in the quadrant of
the point (x,y). I.e. (with circle=2pi)

| y>0 | y<0
-------+-----------+----------
x>0 | 0..pi/2 | -pi/2..0
| |
x<0 | pi/2..pi | -pi..-pi/2

When x is negative and y is approaches 0 changing its sign, it gets
instable (either pi or -pi). Argument_Error is propagated when x and y are
0.

(I cannot tell how this corresponds to the semantics of atan2)

--
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de

Adam Beneschan

unread,
Mar 1, 2007, 3:03:05 PM3/1/07
to
On Mar 1, 11:38 am, Jacob Sparre Andersen <spa...@nbi.dk> wrote:

> I don't know where I can find the corresponding specification for the
> C function atan2(), so I can't give you a proper comparison.

The Unix "man" page for atan2 has some information. It's not as
detailed as the Ada manual, because after all this is C and providing
specific details would infringe on the inalienable right of C
programmers to shoot themselves in the foot. However, the man page
I'm looking at does say:

(1) that the result is between -pi and pi (inclusive), and

(2) the signs of both arguments are used to determine the quadrant of
the result.

So I'd guess that the semantics are probably the same.

-- Adam

saag

unread,
Mar 1, 2007, 4:39:40 PM3/1/07
to

thanks for the quick responses.
Didn't exactly phrase my question properly as I'm really interested in
whether the Ada arctan function returns a value based on the quadrant
-
and according to both that diagram & the link in the other post the
results in the range (-pi, pi) are what I was hoping for.

thanks again


On Mar 1, 2:43 pm, "Dmitry A. Kazakov" <mail...@dmitry-kazakov.de>
wrote:

Keith Thompson

unread,
Mar 4, 2007, 4:16:57 PM3/4/07
to

The C99 standard says:

The atan2 functions compute the value of the arc tangent of y/x,
using the signs of both arguments to determine the quadrant of the
return value. A domain error may occur if both arguments are zero.

The atan2 functions return arctan y/x in the interval [-pi, +pi]
radians.

--
Keith Thompson (The_Other_Keith) ks...@mib.org <http://www.ghoti.net/~kst>
San Diego Supercomputer Center <*> <http://users.sdsc.edu/~kst>
"We must do something. This is something. Therefore, we must do this."
-- Antony Jay and Jonathan Lynn, "Yes Minister"

0 new messages