[PPL-devel] [GIT] ppl/ppl(master): Do not reuse names reserved by the C++ implementation.
Roberto Bagnara
bagnara at cs.unipr.it
Fri Oct 28 16:58:42 CEST 2011
Module: ppl/ppl
Branch: master
Commit: 5fd73820eeed37dc88ba30093a6fdc8b8b566acd
URL: http://www.cs.unipr.it/git/gitweb.cgi?p=ppl/ppl.git;a=commit;h=5fd73820eeed37dc88ba30093a6fdc8b8b566acd
Author: Roberto Bagnara <bagnara at 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);
More information about the PPL-devel
mailing list