diff options
author | Kevin Ryde <user42@zip.com.au> | 2001-06-20 01:38:52 +0200 |
---|---|---|
committer | Kevin Ryde <user42@zip.com.au> | 2001-06-20 01:38:52 +0200 |
commit | cf246f0cc2722d43b8a7e640124dbfbe7dff8d4b (patch) | |
tree | e80208fc6a46ca090c99bec43ab9a388b9b813d9 /mpz/sqrt.c | |
parent | 0fccba5f77c94613083a9aefb86b3bafcd1533e3 (diff) | |
download | gmp-cf246f0cc2722d43b8a7e640124dbfbe7dff8d4b.tar.gz |
* mpz/sqrt.c: Special case for op==0, to avoid TMP_ALLOC(0).
Diffstat (limited to 'mpz/sqrt.c')
-rw-r--r-- | mpz/sqrt.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/mpz/sqrt.c b/mpz/sqrt.c index 37c25146b..dfe0392ed 100644 --- a/mpz/sqrt.c +++ b/mpz/sqrt.c @@ -34,8 +34,13 @@ mpz_sqrt (mpz_ptr root, mpz_srcptr op) TMP_MARK (marker); op_size = op->_mp_size; - if (op_size < 0) - SQRT_OF_NEGATIVE; + if (op_size <= 0) + { + if (op_size < 0) + SQRT_OF_NEGATIVE; + SIZ(root) = 0; + return; + } /* The size of the root is accurate after this simple calculation. */ root_size = (op_size + 1) / 2; |