[PPL-devel] [GIT] ppl/ppl(master): Avoid abuse of mpz_divexact.
Abramo Bagnara
abramo.bagnara at gmail.com
Sat Mar 28 11:47:09 CET 2009
Module: ppl/ppl
Branch: master
Commit: b00d3c837935e823ee255b89a3ea48f92d287f50
URL: http://www.cs.unipr.it/git/gitweb.cgi?p=ppl/ppl.git;a=commit;h=b00d3c837935e823ee255b89a3ea48f92d287f50
Author: Abramo Bagnara <abramo.bagnara at gmail.com>
Date: Sat Mar 28 11:44:33 2009 +0100
Avoid abuse of mpz_divexact.
---
src/checked_mpz.inlines.hh | 10 +++++++++-
1 files changed, 9 insertions(+), 1 deletions(-)
diff --git a/src/checked_mpz.inlines.hh b/src/checked_mpz.inlines.hh
index 9881b82..ec24c92 100644
--- a/src/checked_mpz.inlines.hh
+++ b/src/checked_mpz.inlines.hh
@@ -370,9 +370,17 @@ div_mpz(mpz_class& to, const mpz_class& x, const mpz_class& y,
mpz_srcptr n = x.get_mpz_t();
mpz_srcptr d = y.get_mpz_t();
if (round_ignore(dir)) {
- // FIXME(0.10.1): is this correct?
+#if 0
+ // FIXME: we need to reconsider Rounding_Dir argument to clarify if
+ // client code intention is to have approximate result without any interest
+ // in knowing the direction of rounding or to grant to called function
+ // that result will be exact.
mpz_divexact(to.get_mpz_t(), n, d);
return V_LGE;
+#else
+ mpz_cdiv_q(to.get_mpz_t(), n, d);
+ return mpz_divisible_p(n, d) ? V_EQ : V_LT;
+#endif
}
if (round_down(dir)) {
mpz_fdiv_q(to.get_mpz_t(), n, d);
More information about the PPL-devel
mailing list