/* Primitive operations on floating point for GNU Emacs Lisp interpreter.
-Copyright (C) 1988, 1993-1994, 1999, 2001-2013 Free Software Foundation,
+Copyright (C) 1988, 1993-1994, 1999, 2001-2015 Free Software Foundation,
Inc.
Author: Wolfgang Rupprecht
}
DEFUN ("isnan", Fisnan, Sisnan, 1, 1, 0,
- doc: /* Return non nil iff argument X is a NaN. */)
+ doc: /* Return non nil if argument X is a NaN. */)
(Lisp_Object x)
{
CHECK_FLOAT (x);
static double
emacs_rint (double d)
{
- return floor (d + 0.5);
+ double d1 = d + 0.5;
+ double r = floor (d1);
+ return r - (r == d1 && fmod (r, 2) != 0);
}
#endif