changeset 43413:0f448bd1bf9a

(Fatan): Accept an optional second arg and call atan2 if passed 2 args.
author Eli Zaretskii <eliz@gnu.org>
date Tue, 19 Feb 2002 10:58:07 +0000
parents ce181770fa8e
children 90f3a1f6ee84
files src/floatfns.c
diffstat 1 files changed, 18 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/src/floatfns.c	Tue Feb 19 10:30:30 2002 +0000
+++ b/src/floatfns.c	Tue Feb 19 10:58:07 2002 +0000
@@ -255,13 +255,25 @@
   return make_float (d);
 }
 
-DEFUN ("atan", Fatan, Satan, 1, 1, 0,
-       doc: /* Return the inverse tangent of ARG.  */)
-     (arg)
-     register Lisp_Object arg;
+DEFUN ("atan", Fatan, Satan, 1, 2, 0,
+       doc: /* Return the inverse tangent of the arguments.
+If only one argument Y is given, return the inverse tangent of Y.
+If two arguments Y and X are given, return the inverse tangent of Y
+divided by X, i.e. the angle in radians between the vector (X, Y)
+and the x-axis.  */)
+     (y, x)
+     register Lisp_Object y, x;
 {
-  double d = extract_float (arg);
-  IN_FLOAT (d = atan (d), "atan", arg);
+  double d = extract_float (y);
+
+  if (NILP (x))
+    IN_FLOAT (d = atan (d), "atan", y);
+  else
+    {
+      double d2 = extract_float (x);
+
+      IN_FLOAT2 (d = atan2 (d, d2), "atan", y, x);
+    }
   return make_float (d);
 }