changeset 2119:4077ef8ad483

* floatfns.c (Flogb): Undo the change of Feb 22.
author Jim Blandy <jimb@redhat.com>
date Thu, 11 Mar 1993 07:13:24 +0000
parents 454228f1c526
children fc3cdca22f8d
files src/floatfns.c
diffstat 1 files changed, 11 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/src/floatfns.c	Thu Mar 11 07:13:06 1993 +0000
+++ b/src/floatfns.c	Thu Mar 11 07:13:24 1993 +0000
@@ -615,15 +615,21 @@
 }
 
 DEFUN ("logb", Flogb, Slogb, 1, 1, 0,
-  "Returns the integer that is the base 2 log of ARG.\n\
+  "Returns the integer not greater than the base 2 log of the magnitude of ARG.\n\
 This is the same as the exponent of a float.")
      (arg)
      Lisp_Object arg;
 {
-  /* System V apparently doesn't have a `logb' function.  It might be
-     better to use it on systems that have it, but Ultrix (at least)
-     doesn't declare it properly in <math.h>; does anyone really care? */
-  return Flog (arg, make_number (2));
+#ifdef USG
+  error ("SYSV apparently doesn't have a logb function; what to do?");
+#else
+  Lisp_Object val;
+  double f = extract_float (num);
+
+  IN_FLOAT (val = logb (f), num);
+  XSET (val, Lisp_Int, val);
+  return val;
+#endif
 }
 
 /* the rounding functions  */