[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
atan hooks for atan2
From: |
Wolfgang Rupprecht |
Subject: |
atan hooks for atan2 |
Date: |
Sat, 16 Feb 2002 13:44:19 -0800 (PST) |
This patch adds hooks for calling atan2 if the lisp atan function is
invoked with 2 args. This patch is necessary if one wants to use atan
to determine the compass direction of a positional shift given a
delta-X and delta-Y. Without it, all answers are folded into the
range -pi/2, +pi/2.
(This patch is being released under the GPL, yada, yada, yada).
-wolfgang
cd /usr/pkgsrc/editors/emacs/work/emacs-20.7/src/
diff -u /usr/pkgsrc/editors/emacs/work/emacs-20.7/src/floatfns.c.\~1\~
/usr/pkgsrc/editors/emacs/work/emacs-20.7/src/floatfns.c
--- /usr/pkgsrc/editors/emacs/work/emacs-20.7/src/floatfns.c.~1~ Tue Apr
14 05:29:27 1998
+++ /usr/pkgsrc/editors/emacs/work/emacs-20.7/src/floatfns.c Sat Feb 16
13:20:23 2002
@@ -256,13 +256,21 @@
return make_float (d);
}
-DEFUN ("atan", Fatan, Satan, 1, 1, 0,
- "Return the inverse tangent of ARG.")
- (arg)
+DEFUN ("atan", Fatan, Satan, 1, 2, 0,
+ "Return the inverse tangent of Y_divided_by_X.\n\
+If second optional are is given, return the inverse tangent of Y and X")
+ (arg, arg2)
register Lisp_Object arg;
{
double d = extract_float (arg);
- IN_FLOAT (d = atan (d), "atan", arg);
+
+ if (NILP (arg2))
+ IN_FLOAT (d = atan (d), "atan", arg);
+ else
+ {
+ double d2 = extract_float (arg2);
+ IN_FLOAT2 (d = atan2 (d, d2), "atan", arg, arg2);
+ }
return make_float (d);
}
Diff finished at Sat Feb 16 13:22:11
--
Wolfgang Rupprecht <wolfgang@wsrcc.com> http://www.wsrcc.com/wolfgang/
Coming soon: GPS mapping tools for Open Systems. http://www.gnomad-mapping.com/
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- atan hooks for atan2,
Wolfgang Rupprecht <=