From 9149bf3cdccf6b281ffd416dacb254a6930fdc3a Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Mon, 14 Feb 2011 17:10:03 -0500 Subject: [PATCH 2/2] Use trunc instead of scm_c_truncate * libguile/numbers.c (scm_c_truncate, scm_truncate_number, scm_i_inexact_truncate_quotient, scm_i_inexact_truncate_remainder): Use trunc directly, now that we have its gnulib module. --- libguile/numbers.c | 13 +++---------- 1 files changed, 3 insertions(+), 10 deletions(-) diff --git a/libguile/numbers.c b/libguile/numbers.c index 81d689d..59d8e74 100644 --- a/libguile/numbers.c +++ b/libguile/numbers.c @@ -2139,7 +2139,7 @@ scm_i_inexact_truncate_quotient (double x, double y) if (SCM_UNLIKELY (y == 0)) scm_num_overflow (s_scm_truncate_quotient); /* or return a NaN? */ else - return scm_from_double (scm_c_truncate (x / y)); + return scm_from_double (trunc (x / y)); } static SCM @@ -2274,7 +2274,7 @@ scm_i_inexact_truncate_remainder (double x, double y) if (SCM_UNLIKELY (y == 0)) scm_num_overflow (s_scm_truncate_remainder); /* or return a NaN? */ else - return scm_from_double (x - y * scm_c_truncate (x / y)); + return scm_from_double (x - y * trunc (x / y)); } static SCM @@ -8173,14 +8173,7 @@ static SCM scm_divide2real (SCM x, SCM y) double scm_c_truncate (double x) { -#if HAVE_TRUNC return trunc (x); -#else - if (x < 0.0) - return ceil (x); - else - return floor (x); -#endif } /* scm_c_round is done using floor(x+0.5) to round to nearest and with @@ -8233,7 +8226,7 @@ SCM_PRIMITIVE_GENERIC (scm_truncate_number, "truncate", 1, 0, 0, if (SCM_I_INUMP (x) || SCM_BIGP (x)) return x; else if (SCM_REALP (x)) - return scm_from_double (scm_c_truncate (SCM_REAL_VALUE (x))); + return scm_from_double (trunc (SCM_REAL_VALUE (x))); else if (SCM_FRACTIONP (x)) return scm_truncate_quotient (SCM_FRACTION_NUMERATOR (x), SCM_FRACTION_DENOMINATOR (x)); -- 1.7.1