top(1): Raise WARNS to 6 and fix warnings.
[dragonfly.git] / contrib / gmp / mpz / cmpabs_ui.c
blob881692de6226d074c4dc4ab57dafaffb242beacd
1 /* mpz_cmpabs_ui.c -- Compare a mpz_t a with an mp_limb_t b. Return positive,
2 zero, or negative based on if a > b, a == b, or a < b.
4 Copyright 1991, 1993, 1994, 1995, 1997, 2000, 2001, 2002 Free Software
5 Foundation, Inc.
7 This file is part of the GNU MP Library.
9 The GNU MP Library is free software; you can redistribute it and/or modify
10 it under the terms of the GNU Lesser General Public License as published by
11 the Free Software Foundation; either version 3 of the License, or (at your
12 option) any later version.
14 The GNU MP Library is distributed in the hope that it will be useful, but
15 WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
16 or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
17 License for more details.
19 You should have received a copy of the GNU Lesser General Public License
20 along with the GNU MP Library. If not, see http://www.gnu.org/licenses/. */
22 #include "gmp.h"
23 #include "gmp-impl.h"
25 int
26 mpz_cmpabs_ui (mpz_srcptr u, unsigned long int v_digit)
28 mp_ptr up;
29 mp_size_t un;
30 mp_limb_t ul;
32 up = PTR(u);
33 un = SIZ(u);
35 if (un == 0)
36 return -(v_digit != 0);
38 un = ABS (un);
40 if (un == 1)
42 ul = up[0];
43 if (ul > v_digit)
44 return 1;
45 if (ul < v_digit)
46 return -1;
47 return 0;
50 #if GMP_NAIL_BITS != 0
51 if (v_digit > GMP_NUMB_MAX)
53 if (un == 2)
55 ul = up[0] + (up[1] << GMP_NUMB_BITS);
57 if (ul > v_digit)
58 return 1;
59 if (ul < v_digit)
60 return -1;
61 return 0;
64 #endif
66 return 1;