1#include <tommath.h>
2#ifdef BN_MP_CMP_MAG_C
3/* LibTomMath, multiple-precision integer library -- Tom St Denis
4 *
5 * LibTomMath is a library that provides multiple-precision
6 * integer arithmetic as well as number theoretic functionality.
7 *
8 * The library was designed directly after the MPI library by
9 * Michael Fromberger but has been written from scratch with
10 * additional optimizations in place.
11 *
12 * The library is free for all purposes without any express
13 * guarantee it works.
14 *
15 * Tom St Denis, tomstdenis@gmail.com, http://libtom.org
16 */
17
18/* compare maginitude of two ints (unsigned) */
19int mp_cmp_mag (mp_int * a, mp_int * b)
20{
21  int     n;
22  mp_digit *tmpa, *tmpb;
23
24  /* compare based on # of non-zero digits */
25  if (a->used > b->used) {
26    return MP_GT;
27  }
28
29  if (a->used < b->used) {
30    return MP_LT;
31  }
32
33  /* alias for a */
34  tmpa = a->dp + (a->used - 1);
35
36  /* alias for b */
37  tmpb = b->dp + (a->used - 1);
38
39  /* compare based on digits  */
40  for (n = 0; n < a->used; ++n, --tmpa, --tmpb) {
41    if (*tmpa > *tmpb) {
42      return MP_GT;
43    }
44
45    if (*tmpa < *tmpb) {
46      return MP_LT;
47    }
48  }
49  return MP_EQ;
50}
51#endif
52
53/* $Source: /cvs/libtom/libtommath/bn_mp_cmp_mag.c,v $ */
54/* $Revision: 1.4 $ */
55/* $Date: 2006/12/28 01:25:13 $ */
56