return (unsigned long) fmod (extract_float (obj), 4e9);
}
+static const struct lrecord_description float_description[] = {
+ { XD_END }
+};
+
DEFINE_BASIC_LRECORD_IMPLEMENTATION ("float", float,
mark_float, print_float, 0, float_equal,
- float_hash, struct Lisp_Float);
+ float_hash, float_description,
+ struct Lisp_Float);
\f
/* Extract a Lisp number as a `double', or signal an error. */
if (INTP (num))
return (double) XINT (num);
- return extract_float (wrong_type_argument (num, Qnumberp));
+ return extract_float (wrong_type_argument (Qnumberp, num));
}
#endif /* LISP_FLOAT_TYPE */
if (INTP (arg))
return (XINT (arg) >= 0) ? arg : make_int (- XINT (arg));
- return Fabs (wrong_type_argument (arg, Qnumberp));
+ return Fabs (wrong_type_argument (Qnumberp, arg));
}
#ifdef LISP_FLOAT_TYPE
DEFUN ("float", Ffloat, 1, 1, 0, /*
-Return the floating point number equal to ARG.
+Return the floating point number numerically equal to ARG.
*/
(arg))
{
if (FLOATP (arg)) /* give 'em the same float back */
return arg;
- return Ffloat (wrong_type_argument (arg, Qnumberp));
+ return Ffloat (wrong_type_argument (Qnumberp, arg));
}
#endif /* LISP_FLOAT_TYPE */
if (INTP (arg))
return arg;
- return Fceiling (wrong_type_argument (arg, Qnumberp));
+ return Fceiling (wrong_type_argument (Qnumberp, arg));
}
if (INTP (arg))
return arg;
- return Fround (wrong_type_argument (arg, Qnumberp));
+ return Fround (wrong_type_argument (Qnumberp, arg));
}
DEFUN ("truncate", Ftruncate, 1, 1, 0, /*
if (INTP (arg))
return arg;
- return Ftruncate (wrong_type_argument (arg, Qnumberp));
+ return Ftruncate (wrong_type_argument (Qnumberp, arg));
}
\f
/* Float-rounding functions. */