
Module: ppl/ppl Branch: master Commit: 5fd73820eeed37dc88ba30093a6fdc8b8b566acd URL: http://www.cs.unipr.it/git/gitweb.cgi?p=ppl/ppl.git;a=commit;h=5fd73820eeed3...
Author: Roberto Bagnara bagnara@cs.unipr.it Date: Fri Oct 28 16:54:23 2011 +0200
Do not reuse names reserved by the C++ implementation. Detected by ECLAIR service resvidnt.
---
src/checked_float.inlines.hh | 44 ++++++++++++++++++++--------------------- src/checked_int.inlines.hh | 6 ++-- 2 files changed, 24 insertions(+), 26 deletions(-)
diff --git a/src/checked_float.inlines.hh b/src/checked_float.inlines.hh index a11df84..b8685b2 100644 --- a/src/checked_float.inlines.hh +++ b/src/checked_float.inlines.hh @@ -800,31 +800,30 @@ set_pos_overflow_float(T& to, Rounding_Dir dir) {
template <typename To_Policy, typename From_Policy, typename T> inline Result -assign_float_mpz(T& to, const mpz_class& _from, Rounding_Dir dir) -{ - mpz_srcptr from = _from.get_mpz_t(); - int sign = mpz_sgn(from); +assign_float_mpz(T& to, const mpz_class& from, Rounding_Dir dir) { + mpz_srcptr from_z = from.get_mpz_t(); + int sign = mpz_sgn(from_z); if (sign == 0) { to = 0; return V_EQ; } - size_t exponent = mpz_sizeinbase(from, 2) - 1; + size_t exponent = mpz_sizeinbase(from_z, 2) - 1; if (exponent > size_t(Float<T>::Binary::EXPONENT_MAX)) { if (sign < 0) return set_neg_overflow_float<To_Policy>(to, dir); else return set_pos_overflow_float<To_Policy>(to, dir); } - unsigned long zeroes = mpn_scan1(from->_mp_d, 0); + unsigned long zeroes = mpn_scan1(from_z->_mp_d, 0); size_t meaningful_bits = exponent - zeroes; mpz_t mantissa; mpz_init(mantissa); if (exponent > Float<T>::Binary::MANTISSA_BITS) mpz_tdiv_q_2exp(mantissa, - from, + from_z, exponent - Float<T>::Binary::MANTISSA_BITS); else - mpz_mul_2exp(mantissa, from, Float<T>::Binary::MANTISSA_BITS - exponent); + mpz_mul_2exp(mantissa, from_z, Float<T>::Binary::MANTISSA_BITS - exponent); Float<T> f; f.u.binary.build(sign < 0, mantissa, exponent); mpz_clear(mantissa); @@ -840,16 +839,15 @@ assign_float_mpz(T& to, const mpz_class& _from, Rounding_Dir dir)
template <typename To_Policy, typename From_Policy, typename T> inline Result -assign_float_mpq(T& to, const mpq_class& from, Rounding_Dir dir) -{ - const mpz_class& _num = from.get_num(); - const mpz_class& _den = from.get_den(); - if (_den == 1) - return assign_float_mpz<To_Policy, From_Policy>(to, _num, dir); - mpz_srcptr num = _num.get_mpz_t(); - mpz_srcptr den = _den.get_mpz_t(); - int sign = mpz_sgn(num); - signed long exponent = mpz_sizeinbase(num, 2) - mpz_sizeinbase(den, 2); +assign_float_mpq(T& to, const mpq_class& from, Rounding_Dir dir) { + const mpz_class& num = from.get_num(); + const mpz_class& den = from.get_den(); + if (den == 1) + return assign_float_mpz<To_Policy, From_Policy>(to, num, dir); + mpz_srcptr num_z = num.get_mpz_t(); + mpz_srcptr den_z = den.get_mpz_t(); + int sign = mpz_sgn(num_z); + signed long exponent = mpz_sizeinbase(num_z, 2) - mpz_sizeinbase(den_z, 2); if (exponent < Float<T>::Binary::EXPONENT_MIN_DENORM) { to = 0; inexact: @@ -872,16 +870,16 @@ assign_float_mpq(T& to, const mpq_class& from, Rounding_Dir dir) mpz_init(mantissa); signed long shift = needed_bits - exponent; if (shift > 0) { - mpz_mul_2exp(mantissa, num, shift); - num = mantissa; + mpz_mul_2exp(mantissa, num_z, shift); + num_z = mantissa; } else if (shift < 0) { - mpz_mul_2exp(mantissa, den, -shift); - den = mantissa; + mpz_mul_2exp(mantissa, den_z, -shift); + den_z = mantissa; } mpz_t r; mpz_init(r); - mpz_tdiv_qr(mantissa, r, num, den); + mpz_tdiv_qr(mantissa, r, num_z, den_z); size_t bits = mpz_sizeinbase(mantissa, 2); bool inexact = (mpz_sgn(r) != 0); mpz_clear(r); diff --git a/src/checked_int.inlines.hh b/src/checked_int.inlines.hh index c194de7..10ab8da 100644 --- a/src/checked_int.inlines.hh +++ b/src/checked_int.inlines.hh @@ -702,9 +702,9 @@ assign_int_mpq(To& to, const mpq_class& from, Rounding_Dir dir) { mpz_srcptr n = from.get_num().get_mpz_t(); mpz_srcptr d = from.get_den().get_mpz_t(); PPL_DIRTY_TEMP(mpz_class, q); - mpz_ptr _q = q.get_mpz_t(); + mpz_ptr q_z = q.get_mpz_t(); if (round_not_requested(dir)) { - mpz_tdiv_q(_q, n, d); + mpz_tdiv_q(q_z, n, d); Result r = assign<To_Policy, void>(to, q, dir); if (r != V_EQ) return r; @@ -713,7 +713,7 @@ assign_int_mpq(To& to, const mpq_class& from, Rounding_Dir dir) { mpz_t rem; int sign; mpz_init(rem); - mpz_tdiv_qr(_q, rem, n, d); + mpz_tdiv_qr(q_z, rem, n, d); sign = mpz_sgn(rem); mpz_clear(rem); Result r = assign<To_Policy, void>(to, q, dir);