summaryrefslogtreecommitdiffhomepage
path: root/libtommath/bn_mp_dr_setup.c
blob: 32d5f389074b5c3e2f2c0b9adf3a36f568a8e7e4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include "tommath_private.h"
#ifdef BN_MP_DR_SETUP_C
/* LibTomMath, multiple-precision integer library -- Tom St Denis */
/* SPDX-License-Identifier: Unlicense */

/* determines the setup value */
void mp_dr_setup(const mp_int *a, mp_digit *d)
{
   /* the casts are required if MP_DIGIT_BIT is one less than
    * the number of bits in a mp_digit [e.g. MP_DIGIT_BIT==31]
    */
   *d = (mp_digit)(((mp_word)1 << (mp_word)MP_DIGIT_BIT) - (mp_word)a->dp[0]);
}

#endif