diff options
Diffstat (limited to 'libtommath/tommath_class.h')
-rw-r--r-- | libtommath/tommath_class.h | 129 |
1 files changed, 118 insertions, 11 deletions
diff --git a/libtommath/tommath_class.h b/libtommath/tommath_class.h index 1989054..6363042 100644 --- a/libtommath/tommath_class.h +++ b/libtommath/tommath_class.h @@ -1,3 +1,14 @@ +/* LibTomMath, multiple-precision integer library -- Tom St Denis + * + * LibTomMath is a library that provides multiple-precision + * integer arithmetic as well as number theoretic functionality. + * + * The library was designed directly after the MPI library by + * Michael Fromberger but has been written from scratch with + * additional optimizations in place. + * + * SPDX-License-Identifier: Unlicense + */ #if !(defined(LTM1) && defined(LTM2) && defined(LTM3)) #if defined(LTM2) # define LTM3 @@ -6,7 +17,6 @@ # define LTM2 #endif #define LTM1 - #if defined(LTM_ALL) # define BN_ERROR_C # define BN_FAST_MP_INVMOD_C @@ -48,6 +58,8 @@ # define BN_MP_FREAD_C # define BN_MP_FWRITE_C # define BN_MP_GCD_C +# define BN_MP_GET_BIT_C +# define BN_MP_GET_DOUBLE_C # define BN_MP_GET_INT_C # define BN_MP_GET_LONG_C # define BN_MP_GET_LONG_LONG_C @@ -65,6 +77,7 @@ # define BN_MP_JACOBI_C # define BN_MP_KARATSUBA_MUL_C # define BN_MP_KARATSUBA_SQR_C +# define BN_MP_KRONECKER_C # define BN_MP_LCM_C # define BN_MP_LSHD_C # define BN_MP_MOD_C @@ -83,12 +96,14 @@ # define BN_MP_NEG_C # define BN_MP_OR_C # define BN_MP_PRIME_FERMAT_C +# define BN_MP_PRIME_FROBENIUS_UNDERWOOD_C # define BN_MP_PRIME_IS_DIVISIBLE_C # define BN_MP_PRIME_IS_PRIME_C # define BN_MP_PRIME_MILLER_RABIN_C # define BN_MP_PRIME_NEXT_PRIME_C # define BN_MP_PRIME_RABIN_MILLER_TRIALS_C # define BN_MP_PRIME_RANDOM_EX_C +# define BN_MP_PRIME_STRONG_LUCAS_SELFRIDGE_C # define BN_MP_RADIX_SIZE_C # define BN_MP_RADIX_SMAP_C # define BN_MP_RAND_C @@ -105,6 +120,7 @@ # define BN_MP_REDUCE_SETUP_C # define BN_MP_RSHD_C # define BN_MP_SET_C +# define BN_MP_SET_DOUBLE_C # define BN_MP_SET_INT_C # define BN_MP_SET_LONG_C # define BN_MP_SET_LONG_LONG_C @@ -142,7 +158,6 @@ # define BN_S_MP_SUB_C # define BNCORE_C #endif - #if defined(BN_ERROR_C) # define BN_MP_ERROR_TO_STRING_C #endif @@ -160,6 +175,7 @@ # define BN_MP_CMP_C # define BN_MP_CMP_D_C # define BN_MP_ADD_C +# define BN_MP_CMP_MAG_C # define BN_MP_EXCH_C # define BN_MP_CLEAR_MULTI_C #endif @@ -425,6 +441,14 @@ # define BN_MP_CLEAR_C #endif +#if defined(BN_MP_GET_BIT_C) +# define BN_MP_ISZERO_C +#endif + +#if defined(BN_MP_GET_DOUBLE_C) +# define BN_MP_ISNEG_C +#endif + #if defined(BN_MP_GET_INT_C) #endif @@ -509,14 +533,9 @@ #endif #if defined(BN_MP_JACOBI_C) +# define BN_MP_KRONECKER_C # define BN_MP_ISNEG_C # define BN_MP_CMP_D_C -# define BN_MP_ISZERO_C -# define BN_MP_INIT_COPY_C -# define BN_MP_CNT_LSB_C -# define BN_MP_DIV_2D_C -# define BN_MP_MOD_C -# define BN_MP_CLEAR_C #endif #if defined(BN_MP_KARATSUBA_MUL_C) @@ -541,6 +560,18 @@ # define BN_MP_CLEAR_C #endif +#if defined(BN_MP_KRONECKER_C) +# define BN_MP_ISZERO_C +# define BN_MP_ISEVEN_C +# define BN_MP_INIT_COPY_C +# define BN_MP_CNT_LSB_C +# define BN_MP_DIV_2D_C +# define BN_MP_CMP_D_C +# define BN_MP_COPY_C +# define BN_MP_MOD_C +# define BN_MP_CLEAR_C +#endif + #if defined(BN_MP_LCM_C) # define BN_MP_INIT_MULTI_C # define BN_MP_GCD_C @@ -666,16 +697,49 @@ # define BN_MP_CLEAR_C #endif +#if defined(BN_MP_PRIME_FROBENIUS_UNDERWOOD_C) +# define BN_MP_PRIME_IS_PRIME_C +# define BN_MP_INIT_MULTI_C +# define BN_MP_SET_LONG_C +# define BN_MP_SQR_C +# define BN_MP_SUB_D_C +# define BN_MP_KRONECKER_C +# define BN_MP_GCD_C +# define BN_MP_ADD_D_C +# define BN_MP_SET_C +# define BN_MP_COUNT_BITS_C +# define BN_MP_MUL_2_C +# define BN_MP_MUL_D_C +# define BN_MP_ADD_C +# define BN_MP_MUL_C +# define BN_MP_SUB_C +# define BN_MP_MOD_C +# define BN_MP_GET_BIT_C +# define BN_MP_EXCH_C +# define BN_MP_ISZERO_C +# define BN_MP_CMP_C +# define BN_MP_CLEAR_MULTI_C +#endif + #if defined(BN_MP_PRIME_IS_DIVISIBLE_C) # define BN_MP_MOD_D_C #endif #if defined(BN_MP_PRIME_IS_PRIME_C) +# define BN_MP_ISEVEN_C +# define BN_MP_IS_SQUARE_C # define BN_MP_CMP_D_C # define BN_MP_PRIME_IS_DIVISIBLE_C -# define BN_MP_INIT_C -# define BN_MP_SET_C +# define BN_MP_INIT_SET_C # define BN_MP_PRIME_MILLER_RABIN_C +# define BN_MP_PRIME_FROBENIUS_UNDERWOOD_C +# define BN_MP_PRIME_STRONG_LUCAS_SELFRIDGE_C +# define BN_MP_READ_RADIX_C +# define BN_MP_CMP_C +# define BN_MP_SET_C +# define BN_MP_COUNT_BITS_C +# define BN_MP_RAND_C +# define BN_MP_DIV_2D_C # define BN_MP_CLEAR_C #endif @@ -699,7 +763,7 @@ # define BN_MP_MOD_D_C # define BN_MP_INIT_C # define BN_MP_ADD_D_C -# define BN_MP_PRIME_MILLER_RABIN_C +# define BN_MP_PRIME_IS_PRIME_C # define BN_MP_CLEAR_C #endif @@ -715,6 +779,37 @@ # define BN_MP_ADD_D_C #endif +#if defined(BN_MP_PRIME_STRONG_LUCAS_SELFRIDGE_C) +# define BN_MP_PRIME_IS_PRIME_C +# define BN_MP_MUL_D_C +# define BN_S_MP_MUL_SI_C +# define BN_MP_INIT_C +# define BN_MP_SET_LONG_C +# define BN_MP_MUL_C +# define BN_MP_CLEAR_C +# define BN_MP_INIT_MULTI_C +# define BN_MP_GCD_C +# define BN_MP_CMP_D_C +# define BN_MP_CMP_C +# define BN_MP_KRONECKER_C +# define BN_MP_ADD_D_C +# define BN_MP_CNT_LSB_C +# define BN_MP_DIV_2D_C +# define BN_MP_SET_C +# define BN_MP_MUL_2_C +# define BN_MP_COUNT_BITS_C +# define BN_MP_MOD_C +# define BN_MP_SQR_C +# define BN_MP_SUB_C +# define BN_MP_GET_BIT_C +# define BN_MP_ADD_C +# define BN_MP_ISODD_C +# define BN_MP_DIV_2_C +# define BN_MP_SUB_D_C +# define BN_MP_ISZERO_C +# define BN_MP_CLEAR_MULTI_C +#endif + #if defined(BN_MP_RADIX_SIZE_C) # define BN_MP_ISZERO_C # define BN_MP_COUNT_BITS_C @@ -730,6 +825,7 @@ #endif #if defined(BN_MP_RAND_C) +# define BN_MP_RAND_DIGIT_C # define BN_MP_ZERO_C # define BN_MP_ADD_D_C # define BN_MP_LSHD_C @@ -833,6 +929,13 @@ # define BN_MP_ZERO_C #endif +#if defined(BN_MP_SET_DOUBLE_C) +# define BN_MP_SET_LONG_LONG_C +# define BN_MP_DIV_2D_C +# define BN_MP_MUL_2D_C +# define BN_MP_ISZERO_C +#endif + #if defined(BN_MP_SET_INT_C) # define BN_MP_ZERO_C # define BN_MP_MUL_2D_C @@ -1113,3 +1216,7 @@ #else # define LTM_LAST #endif + +/* ref: $Format:%D$ */ +/* git commit: $Format:%H$ */ +/* commit time: $Format:%ai$ */ |