aboutsummaryrefslogtreecommitdiffstats
path: root/src/floatfns.c
diff options
context:
space:
mode:
authorEli Zaretskii2002-02-19 10:58:07 +0000
committerEli Zaretskii2002-02-19 10:58:07 +0000
commit250ffca65ee61183ebab25a4a301444cb9a51e9c (patch)
treee50a7e012c77c4c75805a419738d27a6de42adc1 /src/floatfns.c
parent9b2d1d408c023cc436b5cf251e9c814376f4c200 (diff)
downloademacs-250ffca65ee61183ebab25a4a301444cb9a51e9c.tar.gz
emacs-250ffca65ee61183ebab25a4a301444cb9a51e9c.zip
(Fatan): Accept an optional second arg and call atan2 if passed 2 args.
Diffstat (limited to 'src/floatfns.c')
-rw-r--r--src/floatfns.c24
1 files changed, 18 insertions, 6 deletions
diff --git a/src/floatfns.c b/src/floatfns.c
index fabbffb4408..08405c307a7 100644
--- a/src/floatfns.c
+++ b/src/floatfns.c
@@ -255,13 +255,25 @@ DEFUN ("asin", Fasin, Sasin, 1, 1, 0,
255 return make_float (d); 255 return make_float (d);
256} 256}
257 257
258DEFUN ("atan", Fatan, Satan, 1, 1, 0, 258DEFUN ("atan", Fatan, Satan, 1, 2, 0,
259 doc: /* Return the inverse tangent of ARG. */) 259 doc: /* Return the inverse tangent of the arguments.
260 (arg) 260If only one argument Y is given, return the inverse tangent of Y.
261 register Lisp_Object arg; 261If two arguments Y and X are given, return the inverse tangent of Y
262divided by X, i.e. the angle in radians between the vector (X, Y)
263and the x-axis. */)
264 (y, x)
265 register Lisp_Object y, x;
262{ 266{
263 double d = extract_float (arg); 267 double d = extract_float (y);
264 IN_FLOAT (d = atan (d), "atan", arg); 268
269 if (NILP (x))
270 IN_FLOAT (d = atan (d), "atan", y);
271 else
272 {
273 double d2 = extract_float (x);
274
275 IN_FLOAT2 (d = atan2 (d, d2), "atan", y, x);
276 }
265 return make_float (d); 277 return make_float (d);
266} 278}
267 279