summaryrefslogtreecommitdiff
path: root/mpq/cmp_si.c
diff options
context:
space:
mode:
Diffstat (limited to 'mpq/cmp_si.c')
-rw-r--r--mpq/cmp_si.c26
1 files changed, 10 insertions, 16 deletions
diff --git a/mpq/cmp_si.c b/mpq/cmp_si.c
index 0a31fe8c9..f21382e5b 100644
--- a/mpq/cmp_si.c
+++ b/mpq/cmp_si.c
@@ -1,6 +1,6 @@
/* _mpq_cmp_si -- compare mpq and long/ulong fraction.
-Copyright 2001, 2013 Free Software Foundation, Inc.
+Copyright 2001, 2013, 2014 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
@@ -42,26 +42,20 @@ _mpq_cmp_si (mpq_srcptr q, long n, unsigned long d)
/* need canonical sign to get right result */
ASSERT (SIZ(DEN(q)) > 0);
+ if (n >= 0)
+ return _mpq_cmp_ui (q, n, d);
if (SIZ(NUM(q)) >= 0)
{
- if (n >= 0)
- return _mpq_cmp_ui (q, n, d); /* >=0 cmp >=0 */
- else
- return 1; /* >=0 cmp <0 */
+ return 1; /* >=0 cmp <0 */
}
else
{
- if (n >= 0)
- return -1; /* <0 cmp >=0 */
- else
- {
- mpq_t qabs;
- SIZ(NUM(qabs)) = ABSIZ(NUM(q));
- PTR(NUM(qabs)) = PTR(NUM(q));
- SIZ(DEN(qabs)) = SIZ(DEN(q));
- PTR(DEN(qabs)) = PTR(DEN(q));
+ mpq_t qabs;
+ SIZ(NUM(qabs)) = -SIZ(NUM(q));
+ PTR(NUM(qabs)) = PTR(NUM(q));
+ SIZ(DEN(qabs)) = SIZ(DEN(q));
+ PTR(DEN(qabs)) = PTR(DEN(q));
- return - _mpq_cmp_ui (qabs, NEG_CAST (unsigned long, n), d); /* <0 cmp <0 */
- }
+ return - _mpq_cmp_ui (qabs, NEG_CAST (unsigned long, n), d); /* <0 cmp <0 */
}
}