summaryrefslogtreecommitdiff
path: root/mpz/invert.c
diff options
context:
space:
mode:
authortege <tege@gmplib.org>1996-07-22 09:59:54 +0200
committertege <tege@gmplib.org>1996-07-22 09:59:54 +0200
commit58e080a2cd3a3270b9299e915211863ed1957b5a (patch)
tree94cf28c50c5a6a28dd7cd8184f26addc20749a75 /mpz/invert.c
parent2ef05858c074cd1c504ee702308b9ac713d14461 (diff)
downloadgmp-58e080a2cd3a3270b9299e915211863ed1957b5a.tar.gz
Use MPZ_TMP_INIT, not mpz_init.
#include "gmp-impl.h".
Diffstat (limited to 'mpz/invert.c')
-rw-r--r--mpz/invert.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/mpz/invert.c b/mpz/invert.c
index ff1d6d937..a38911442 100644
--- a/mpz/invert.c
+++ b/mpz/invert.c
@@ -22,6 +22,7 @@ the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
MA 02111-1307, USA. */
#include "gmp.h"
+#include "gmp-impl.h"
int
#if __STDC__
@@ -34,10 +35,16 @@ mpz_invert (inverse, x, n)
{
mpz_t gcd;
int rv;
+ mp_size_t xsize, nsize, size;
- mpz_init (gcd);
+ xsize = SIZ (x);
+ nsize = SIZ (n);
+ xsize = ABS (xsize);
+ nsize = ABS (nsize);
+ size = MAX (xsize, nsize) + 1;
+
+ MPZ_TMP_INIT (gcd, size);
mpz_gcdext (gcd, inverse, (mpz_ptr) 0, x, n);
rv = gcd->_mp_size == 1 && (gcd->_mp_d)[0] == 1;
- mpz_clear (gcd);
return rv;
}