255 |
return make_float (d); |
return make_float (d); |
256 |
} |
} |
257 |
|
|
258 |
DEFUN ("atan", Fatan, Satan, 1, 1, 0, |
DEFUN ("atan", Fatan, Satan, 1, 2, 0, |
259 |
doc: /* Return the inverse tangent of ARG. */) |
doc: /* Return the inverse tangent of the arguments. |
260 |
(arg) |
If only one argument Y is given, return the inverse tangent of Y. |
261 |
register Lisp_Object arg; |
If two arguments Y and X are given, return the inverse tangent of Y |
262 |
|
divided by X, i.e. the angle in radians between the vector (X, Y) |
263 |
|
and the x-axis. */) |
264 |
|
(y, x) |
265 |
|
register Lisp_Object y, x; |
266 |
{ |
{ |
267 |
double d = extract_float (arg); |
double d = extract_float (y); |
268 |
IN_FLOAT (d = atan (d), "atan", arg); |
|
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 |
|
} |
277 |
return make_float (d); |
return make_float (d); |
278 |
} |
} |
279 |
|
|