commit
8e21616ab2
@ -6,7 +6,7 @@
|
|||||||
*/
|
*/
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <time.h>
|
#include <time.h>
|
||||||
#include "tommath.h"
|
#include "tommath_private.h"
|
||||||
|
|
||||||
static int n_prime;
|
static int n_prime;
|
||||||
static FILE *primes;
|
static FILE *primes;
|
||||||
|
2
mp_div.c
2
mp_div.c
@ -27,7 +27,7 @@ mp_err mp_div(const mp_int *a, const mp_int *b, mp_int *c, mp_int *d)
|
|||||||
|
|
||||||
if (MP_HAS(S_MP_DIV_RECURSIVE)
|
if (MP_HAS(S_MP_DIV_RECURSIVE)
|
||||||
&& (b->used > MP_KARATSUBA_MUL_CUTOFF)
|
&& (b->used > MP_KARATSUBA_MUL_CUTOFF)
|
||||||
&& (b->used <= ((a->used)/3*2))) {
|
&& (b->used <= ((a->used/3)*2))) {
|
||||||
err = s_mp_div_recursive(a, b, c, d);
|
err = s_mp_div_recursive(a, b, c, d);
|
||||||
} else if (MP_HAS(S_MP_DIV_SCHOOL)) {
|
} else if (MP_HAS(S_MP_DIV_SCHOOL)) {
|
||||||
err = s_mp_div_school(a, b, c, d);
|
err = s_mp_div_school(a, b, c, d);
|
||||||
|
@ -17,7 +17,7 @@ mp_err mp_log_u32(const mp_int *a, uint32_t base, uint32_t *c)
|
|||||||
return MP_VAL;
|
return MP_VAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (MP_HAS(S_MP_LOG_POW2) && (base & (base - 1u)) == 0u) {
|
if (MP_HAS(S_MP_LOG_POW2) && ((base & (base - 1u)) == 0u)) {
|
||||||
*c = s_mp_log_pow2(a, base);
|
*c = s_mp_log_pow2(a, base);
|
||||||
return MP_OKAY;
|
return MP_OKAY;
|
||||||
}
|
}
|
||||||
|
@ -48,7 +48,7 @@ static mp_err s_mp_recursion(const mp_int *a, const mp_int *b, mp_int *q, mp_int
|
|||||||
|
|
||||||
/* while A1 < 0 do Q1 = Q1 - 1, A1 = A1 + (beta^k * B) */
|
/* while A1 < 0 do Q1 = Q1 - 1, A1 = A1 + (beta^k * B) */
|
||||||
if ((err = mp_mul_2d(b, k * MP_DIGIT_BIT, &t)) != MP_OKAY) goto LBL_ERR;
|
if ((err = mp_mul_2d(b, k * MP_DIGIT_BIT, &t)) != MP_OKAY) goto LBL_ERR;
|
||||||
while (mp_cmp_d(&A1, 0) == MP_LT) {
|
while (mp_cmp_d(&A1, 0uL) == MP_LT) {
|
||||||
if ((err = mp_decr(&Q1)) != MP_OKAY) goto LBL_ERR;
|
if ((err = mp_decr(&Q1)) != MP_OKAY) goto LBL_ERR;
|
||||||
if ((err = mp_add(&A1, &t, &A1)) != MP_OKAY) goto LBL_ERR;
|
if ((err = mp_add(&A1, &t, &A1)) != MP_OKAY) goto LBL_ERR;
|
||||||
}
|
}
|
||||||
@ -64,7 +64,7 @@ static mp_err s_mp_recursion(const mp_int *a, const mp_int *b, mp_int *q, mp_int
|
|||||||
if ((err = mp_sub(&A2, &t, &A2)) != MP_OKAY) goto LBL_ERR;
|
if ((err = mp_sub(&A2, &t, &A2)) != MP_OKAY) goto LBL_ERR;
|
||||||
|
|
||||||
/* while A2 < 0 do Q0 = Q0 - 1, A2 = A2 + B */
|
/* while A2 < 0 do Q0 = Q0 - 1, A2 = A2 + B */
|
||||||
while (mp_cmp_d(&A2, 0) == MP_LT) {
|
while (mp_cmp_d(&A2, 0uL) == MP_LT) {
|
||||||
if ((err = mp_decr(&Q0)) != MP_OKAY) goto LBL_ERR;
|
if ((err = mp_decr(&Q0)) != MP_OKAY) goto LBL_ERR;
|
||||||
if ((err = mp_add(&A2, b, &A2)) != MP_OKAY) goto LBL_ERR;
|
if ((err = mp_add(&A2, b, &A2)) != MP_OKAY) goto LBL_ERR;
|
||||||
}
|
}
|
||||||
|
@ -167,7 +167,7 @@ typedef unsigned long mp_word __attribute__((mode(TI)));
|
|||||||
typedef uint64_t mp_word;
|
typedef uint64_t mp_word;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
MP_STATIC_ASSERT(correct_word_size, sizeof(mp_word) == 2 * sizeof(mp_digit))
|
MP_STATIC_ASSERT(correct_word_size, sizeof(mp_word) == (2u * sizeof(mp_digit)))
|
||||||
|
|
||||||
/* default precision */
|
/* default precision */
|
||||||
#ifndef MP_PREC
|
#ifndef MP_PREC
|
||||||
|
Loading…
Reference in New Issue
Block a user