/src/dropbear/libtommath/bn_mp_cmp_d.c
Line | Count | Source |
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 | | mp_ord mp_cmp_d(const mp_int *a, mp_digit b) |
8 | 20.6M | { |
9 | | /* compare based on sign */ |
10 | 20.6M | if (a->sign == MP_NEG) { |
11 | 9.76M | return MP_LT; |
12 | 9.76M | } |
13 | | |
14 | | /* compare based on magnitude */ |
15 | 10.9M | if (a->used > 1) { |
16 | 10.8M | return MP_GT; |
17 | 10.8M | } |
18 | | |
19 | | /* compare the only digit of a to b */ |
20 | 58.7k | if (a->dp[0] > b) { |
21 | 17.9k | return MP_GT; |
22 | 40.7k | } else if (a->dp[0] < b) { |
23 | 49 | return MP_LT; |
24 | 40.7k | } else { |
25 | 40.7k | return MP_EQ; |
26 | 40.7k | } |
27 | 58.7k | } |
28 | | #endif |