aboutsummaryrefslogtreecommitdiffstats
path: root/src/floatfns.c
diff options
context:
space:
mode:
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