bn_mp_cmp_d.c 1023 Bytes
Newer Older
1
#include "tommath_private.h"
2 3 4 5 6 7 8 9 10 11
#ifdef BN_MP_CMP_D_C
/* LibTomMath, multiple-precision integer library -- Tom St Denis
 *
 * LibTomMath is a library that provides multiple-precision
 * integer arithmetic as well as number theoretic functionality.
 *
 * The library was designed directly after the MPI library by
 * Michael Fromberger but has been written from scratch with
 * additional optimizations in place.
 *
12
 * SPDX-License-Identifier: Unlicense
13 14 15
 */

/* compare a digit */
16
int mp_cmp_d(const mp_int *a, mp_digit b)
17
{
18 19 20 21
   /* compare based on sign */
   if (a->sign == MP_NEG) {
      return MP_LT;
   }
22

23 24 25 26
   /* compare based on magnitude */
   if (a->used > 1) {
      return MP_GT;
   }
27

28 29 30 31 32 33 34 35
   /* compare the only digit of a to b */
   if (a->dp[0] > b) {
      return MP_GT;
   } else if (a->dp[0] < b) {
      return MP_LT;
   } else {
      return MP_EQ;
   }
36 37 38
}
#endif

39 40 41
/* ref:         HEAD -> master, tag: v1.1.0 */
/* git commit:  08549ad6bc8b0cede0b357a9c341c5c6473a9c55 */
/* commit time: 2019-01-28 20:32:32 +0100 */