diff options
author | Marc Glisse <marc.glisse@inria.fr> | 2011-05-15 22:04:11 +0200 |
---|---|---|
committer | Marc Glisse <marc.glisse@inria.fr> | 2011-05-15 22:04:11 +0200 |
commit | 124aa18e5860108e54ddfe774852e8a344ccdea3 (patch) | |
tree | e045ed60740d4c6a655ffe63cf911d792e7980d0 /gmpxx.h | |
parent | 0199c12e1673ac82e49256fcd34e90d07ed76dca (diff) | |
download | gmp-124aa18e5860108e54ddfe774852e8a344ccdea3.tar.gz |
C++: automatically turn c=(a+b)/2 into c=a+b;c/=2, no need for a temporary.
Diffstat (limited to 'gmpxx.h')
-rw-r--r-- | gmpxx.h | 16 |
1 files changed, 8 insertions, 8 deletions
@@ -2181,14 +2181,14 @@ public: : expr(val1, val2) { } void eval(typename __gmp_resolve_expr<T>::ptr_type p) const { - __gmp_expr<T, T> temp(expr.val1); - Op::eval(p, temp.__get_mp(), expr.val2); + expr.val1.eval(p); + Op::eval(p, p, expr.val2); } void eval(typename __gmp_resolve_expr<T>::ptr_type p, mp_bitcnt_t prec) const { - __gmp_expr<T, T> temp(expr.val1, prec); - Op::eval(p, temp.__get_mp(), expr.val2); + expr.val1.eval(p, prec); + Op::eval(p, p, expr.val2); } const val1_type & get_val1() const { return expr.val1; } const val2_type & get_val2() const { return expr.val2; } @@ -2208,14 +2208,14 @@ public: : expr(val1, val2) { } void eval(typename __gmp_resolve_expr<T>::ptr_type p) const { - __gmp_expr<T, T> temp(expr.val2); - Op::eval(p, expr.val1, temp.__get_mp()); + expr.val2.eval(p); + Op::eval(p, expr.val1, p); } void eval(typename __gmp_resolve_expr<T>::ptr_type p, mp_bitcnt_t prec) const { - __gmp_expr<T, T> temp(expr.val2, prec); - Op::eval(p, expr.val1, temp.__get_mp()); + expr.val2.eval(p, prec); + Op::eval(p, expr.val1, p); } const val1_type & get_val1() const { return expr.val1; } const val2_type & get_val2() const { return expr.val2; } |