diff options
Diffstat (limited to 'gmpxx.h')
-rw-r--r-- | gmpxx.h | 10 |
1 files changed, 10 insertions, 0 deletions
@@ -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) |