diff options
author | tege <tege@gmplib.org> | 2000-06-06 13:48:57 +0200 |
---|---|---|
committer | tege <tege@gmplib.org> | 2000-06-06 13:48:57 +0200 |
commit | 780562566b9c9efcd298b34b955a9d1a35d3125f (patch) | |
tree | c8ea3cf01ba4fc76bea9d07bbb3f1e44063e66c0 /mpz/fdiv_qr.c | |
parent | 49adf99da56541fcfbf0c30668e2ddde56200cf9 (diff) | |
download | gmp-780562566b9c9efcd298b34b955a9d1a35d3125f.tar.gz |
Read dividend->_mp_size before calling mpz_tdiv_qr.
Diffstat (limited to 'mpz/fdiv_qr.c')
-rw-r--r-- | mpz/fdiv_qr.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/mpz/fdiv_qr.c b/mpz/fdiv_qr.c index 2abb16ccb..1120fa01f 100644 --- a/mpz/fdiv_qr.c +++ b/mpz/fdiv_qr.c @@ -35,6 +35,7 @@ mpz_fdiv_qr (quot, rem, dividend, divisor) #endif { mp_size_t divisor_size = divisor->_mp_size; + mp_size_t xsize; mpz_t temp_divisor; /* N.B.: lives until function returns! */ TMP_DECL (marker); @@ -50,9 +51,10 @@ mpz_fdiv_qr (quot, rem, dividend, divisor) divisor = temp_divisor; } + xsize = dividend->_mp_size ^ divisor_size;; mpz_tdiv_qr (quot, rem, dividend, divisor); - if ((divisor_size ^ dividend->_mp_size) < 0 && rem->_mp_size != 0) + if (xsize < 0 && rem->_mp_size != 0) { mpz_sub_ui (quot, quot, 1L); mpz_add (rem, rem, divisor); |