summaryrefslogtreecommitdiff
path: root/gmpxx.h
diff options
context:
space:
mode:
Diffstat (limited to 'gmpxx.h')
-rw-r--r--gmpxx.h10
1 files changed, 10 insertions, 0 deletions
diff --git a/gmpxx.h b/gmpxx.h
index 42d331658..3d778689a 100644
--- a/gmpxx.h
+++ b/gmpxx.h
@@ -220,6 +220,11 @@ struct __gmp_binary_plus
{
if (q != r) mpq_set(q, r);
}
+ else if (__GMPXX_CONSTANT(l) && l == 1)
+ {
+ mpz_add (mpq_numref(q), mpq_numref(r), mpq_denref(r));
+ if (q != r) mpz_set(mpq_denref(q), mpq_denref(r));
+ }
else
{
if (q == r)
@@ -339,6 +344,11 @@ struct __gmp_binary_minus
{
if (q != r) mpq_set(q, r);
}
+ else if (__GMPXX_CONSTANT(l) && l == 1)
+ {
+ mpz_sub (mpq_numref(q), mpq_numref(r), mpq_denref(r));
+ if (q != r) mpz_set(mpq_denref(q), mpq_denref(r));
+ }
else
{
if (q == r)