Mercurial > emacs
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); }