diff options
author | Kevin Ryde <user42@zip.com.au> | 2001-04-02 23:13:43 +0200 |
---|---|---|
committer | Kevin Ryde <user42@zip.com.au> | 2001-04-02 23:13:43 +0200 |
commit | 9d617cb7d874383a2711a42c89c22be8b8ded601 (patch) | |
tree | 806a1639ffedf07935148689b662971973ed209c /mpz/cmpabs.c | |
parent | 0eba1262d67c7f2957abc51efd63f6b9a4dd7dfb (diff) | |
download | gmp-9d617cb7d874383a2711a42c89c22be8b8ded601.tar.gz |
* gmp-impl.h (MPN_CMP): New macro.
* mpz/cmp.c,cmpabs.c: Use it, and minor cleanups too.
Diffstat (limited to 'mpz/cmpabs.c')
-rw-r--r-- | mpz/cmpabs.c | 33 |
1 files changed, 14 insertions, 19 deletions
diff --git a/mpz/cmpabs.c b/mpz/cmpabs.c index 03b3be9f2..6e33c9a95 100644 --- a/mpz/cmpabs.c +++ b/mpz/cmpabs.c @@ -24,27 +24,22 @@ MA 02111-1307, USA. */ #include "gmp.h" #include "gmp-impl.h" + int mpz_cmpabs (mpz_srcptr u, mpz_srcptr v) { - mp_size_t usize = u->_mp_size; - mp_size_t vsize = v->_mp_size; - mp_srcptr up, vp; - int cmp; - - usize = ABS (usize); - vsize = ABS (vsize); - - if (usize != vsize) - return usize - vsize; - - if (usize == 0) - return 0; - - up = u->_mp_d; - vp = v->_mp_d; - - cmp = mpn_cmp (up, vp, usize); - + mp_size_t usize, vsize, dsize; + mp_srcptr up, vp; + int cmp; + + usize = ABSIZ (u); + vsize = ABSIZ (v); + dsize = usize - vsize; + if (dsize != 0) + return dsize; + + up = PTR(u); + vp = PTR(v); + MPN_CMP (cmp, up, vp, usize); return cmp; } |