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 774 : mp_ord mp_cmp_d(const mp_int *a, mp_digit b) 8 : { 9 : /* compare based on sign */ 10 774 : if (a->sign == MP_NEG) { 11 0 : return MP_LT; 12 : } 13 : 14 : /* compare based on magnitude */ 15 774 : if (a->used > 1) { 16 168 : return MP_GT; 17 : } 18 : 19 : /* compare the only digit of a to b */ 20 598 : if (a->dp[0] > b) { 21 443 : return MP_GT; 22 139 : } else if (a->dp[0] < b) { 23 0 : return MP_LT; 24 : } else { 25 139 : return MP_EQ; 26 : } 27 : } 28 : #endif