=================================================================== RCS file: /home/cvs/OpenXM_contrib/gmp/mpz/Attic/cmp.c,v retrieving revision 1.1.1.2 retrieving revision 1.1.1.3 diff -u -p -r1.1.1.2 -r1.1.1.3 --- OpenXM_contrib/gmp/mpz/Attic/cmp.c 2000/09/09 14:12:49 1.1.1.2 +++ OpenXM_contrib/gmp/mpz/Attic/cmp.c 2003/08/25 16:06:32 1.1.1.3 @@ -1,7 +1,7 @@ /* mpz_cmp(u,v) -- Compare U, V. Return postive, zero, or negative based on if U > V, U == V, or U < V. -Copyright (C) 1991, 1993, 1994, 1996 Free Software Foundation, Inc. +Copyright 1991, 1993, 1994, 1996, 2001 Free Software Foundation, Inc. This file is part of the GNU MP Library. @@ -26,50 +26,26 @@ MA 02111-1307, USA. */ #include "gmp.h" #include "gmp-impl.h" -#ifndef BERKELEY_MP int -#if __STDC__ -mpz_cmp (mpz_srcptr u, mpz_srcptr v) -#else -mpz_cmp (u, v) - mpz_srcptr u; - mpz_srcptr v; -#endif -#else /* BERKELEY_MP */ -int -#if __STDC__ +#ifdef BERKELEY_MP mcmp (mpz_srcptr u, mpz_srcptr v) #else -mcmp (u, v) - mpz_srcptr u; - mpz_srcptr v; +mpz_cmp (mpz_srcptr u, mpz_srcptr v) #endif -#endif /* BERKELEY_MP */ { - mp_size_t usize = u->_mp_size; - mp_size_t vsize = v->_mp_size; - mp_size_t size; - mp_srcptr up, vp; - int cmp; + mp_size_t usize, vsize, dsize, asize; + mp_srcptr up, vp; + int cmp; - if (usize != vsize) - return usize - vsize; + usize = SIZ(u); + vsize = SIZ(v); + dsize = usize - vsize; + if (dsize != 0) + return dsize; - if (usize == 0) - return 0; - - size = ABS (usize); - - up = u->_mp_d; - vp = v->_mp_d; - - cmp = mpn_cmp (up, vp, size); - - if (cmp == 0) - return 0; - - if ((cmp < 0) == (usize < 0)) - return 1; - else - return -1; + asize = ABS (usize); + up = PTR(u); + vp = PTR(v); + MPN_CMP (cmp, up, vp, asize); + return (usize >= 0 ? cmp : -cmp); }