Line data Source code
1 : #include "tommath_private.h"
2 : #ifdef BN_MP_CMP_D_C
3 : /* LibTomMath, multiple-precision integer library -- Tom St Denis */
4 : /* SPDX-License-Identifier: Unlicense */
5 :
6 : /* compare a digit */
7 152 : mp_ord mp_cmp_d(const mp_int *a, mp_digit b)
8 : {
9 : /* compare based on sign */
10 152 : if (a->sign == MP_NEG) {
11 0 : return MP_LT;
12 : }
13 :
14 : /* compare based on magnitude */
15 152 : if (a->used > 1) {
16 38 : return MP_GT;
17 : }
18 :
19 : /* compare the only digit of a to b */
20 114 : if (a->dp[0] > b) {
21 76 : return MP_GT;
22 38 : } else if (a->dp[0] < b) {
23 0 : return MP_LT;
24 : } else {
25 38 : return MP_EQ;
26 : }
27 : }
28 : #endif
|