commit Solaris (round -0.0) workaround

svn: r8906
This commit is contained in:
Matthew Flatt 2008-03-06 21:32:25 +00:00
parent 53bc658226
commit 186d63a2cc
2 changed files with 9 additions and 0 deletions

View File

@ -110,6 +110,8 @@
# define USE_ON_EXIT_FOR_ATEXIT # define USE_ON_EXIT_FOR_ATEXIT
# endif # endif
#define FMOD_CAN_RETURN_POS_ZERO
# ifndef i386 # ifndef i386
# define FLUSH_SPARC_REGISTER_WINDOWS # define FLUSH_SPARC_REGISTER_WINDOWS
# endif # endif
@ -1216,6 +1218,8 @@
/* FMOD_CAN_RETURN_NEG_ZERO is fmod() on positive numbers can produce /* FMOD_CAN_RETURN_NEG_ZERO is fmod() on positive numbers can produce
a negative zero. */ a negative zero. */
/* FMOD_CAN_RETURN_POS_ZERO is fmod() on -0.0 can produce 0.0. */
/* LOG_ZERO_ISNT_NEG_INF defines a version of log that checks for an /* LOG_ZERO_ISNT_NEG_INF defines a version of log that checks for an
inexact zero argument and return negative infinity. */ inexact zero argument and return negative infinity. */

View File

@ -1219,6 +1219,11 @@ sch_round (int argc, Scheme_Object *argv[])
double i, frac; double i, frac;
int invert; int invert;
#ifdef FMOD_CAN_RETURN_POS_ZERO
if (minus_zero_p(d))
return d;
#endif
if (d < 0) { if (d < 0) {
d = -d; d = -d;
invert = 1; invert = 1;