/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 | 4.05M | { |
9 | | /* compare based on sign */ |
10 | 4.05M | if (a->sign == MP_NEG) { |
11 | 2.02M | return MP_LT; |
12 | 2.02M | } |
13 | | |
14 | | /* compare based on magnitude */ |
15 | 2.03M | if (a->used > 1) { |
16 | 2.02M | return MP_GT; |
17 | 2.02M | } |
18 | | |
19 | | /* compare the only digit of a to b */ |
20 | 9.79k | if (a->dp[0] > b) { |
21 | 2.36k | return MP_GT; |
22 | 7.42k | } else if (a->dp[0] < b) { |
23 | 4 | return MP_LT; |
24 | 7.42k | } else { |
25 | 7.42k | return MP_EQ; |
26 | 7.42k | } |
27 | 9.79k | } |
28 | | #endif |