bugfix in bn_mp_kronecker.c, cleanup and formatting in div. files
This commit is contained in:
		
							parent
							
								
									e6f353b48d
								
							
						
					
					
						commit
						3ec93dab9e
					
				| @ -49,3 +49,7 @@ int mp_get_bit(const mp_int *a, int b) | ||||
| } | ||||
| 
 | ||||
| #endif | ||||
| 
 | ||||
| /* ref:         $Format:%D$ */ | ||||
| /* git commit:  $Format:%H$ */ | ||||
| /* commit time: $Format:%ai$ */ | ||||
|  | ||||
| @ -131,11 +131,15 @@ int mp_kronecker(const mp_int *a, const mp_int *p, int *c) | ||||
| LBL_KRON: | ||||
|    mp_clear(&r); | ||||
| LBL_KRON_1: | ||||
|    mp_clear(&a1); | ||||
| LBL_KRON_0: | ||||
|    mp_clear(&p1); | ||||
| LBL_KRON_0: | ||||
|    mp_clear(&a1); | ||||
| 
 | ||||
|    return e; | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| #endif | ||||
| 
 | ||||
| /* ref:         $Format:%D$ */ | ||||
| /* git commit:  $Format:%H$ */ | ||||
| /* commit time: $Format:%ai$ */ | ||||
|  | ||||
| @ -190,3 +190,7 @@ LBL_FU_ERR: | ||||
| 
 | ||||
| #endif | ||||
| #endif | ||||
| 
 | ||||
| /* ref:         $Format:%D$ */ | ||||
| /* git commit:  $Format:%H$ */ | ||||
| /* commit time: $Format:%ai$ */ | ||||
|  | ||||
| @ -14,7 +14,7 @@ | ||||
|  */ | ||||
| 
 | ||||
| /* portable integer log of two with small footprint */ | ||||
| static unsigned int floor_ilog2(int value) | ||||
| static unsigned int s_floor_ilog2(int value) | ||||
| { | ||||
|    unsigned int r = 0; | ||||
|    while ((value >>= 1) != 0) { | ||||
| @ -214,7 +214,7 @@ int mp_prime_is_prime(const mp_int *a, int t, int *result) | ||||
|          } | ||||
|       } | ||||
| 
 | ||||
|       // for compatibility with the current API (well, compatible within a sign's width)
 | ||||
|       /* for compatibility with the current API (well, compatible within a sign's width) */ | ||||
|       if (p_max < t) { | ||||
|          p_max = t; | ||||
|       } | ||||
| @ -252,8 +252,8 @@ int mp_prime_is_prime(const mp_int *a, int t, int *result) | ||||
|       /*
 | ||||
|          Assuming the General Rieman hypothesis (never thought to write that in a | ||||
|          comment) the upper bound can be lowered to  2*(log a)^2. | ||||
|          E. Bach, “Explicit bounds for primality testing and related problems,” | ||||
|          Math. Comp. 55 (1990), 355–380. | ||||
|          E. Bach, "Explicit bounds for primality testing and related problems," | ||||
|          Math. Comp. 55 (1990), 355-380. | ||||
| 
 | ||||
|             size_a = (size_a/10) * 7; | ||||
|             len = 2 * (size_a * size_a); | ||||
| @ -262,7 +262,7 @@ int mp_prime_is_prime(const mp_int *a, int t, int *result) | ||||
| 
 | ||||
|             floor(2048/10)*7 = 1428 | ||||
|             2 * 1428^2       = 4078368 | ||||
|              | ||||
| 
 | ||||
|          (would have been ~4030331.9962 with floats and natural log instead) | ||||
|          That number is smaller than 2^28, the default bit-size of mp_digit. | ||||
|       */ | ||||
| @ -288,7 +288,7 @@ int mp_prime_is_prime(const mp_int *a, int t, int *result) | ||||
|          if ((err = mp_rand(&b, 1)) != MP_OKAY) { | ||||
|             goto LBL_B; | ||||
|          } | ||||
|          /* 
 | ||||
|          /*
 | ||||
|           * Reduce digit before casting because mp_digit might be bigger than | ||||
|           * an unsigned int and "mask" on the other side is most probably not. | ||||
|           */ | ||||
|  | ||||
| @ -29,7 +29,7 @@ | ||||
|  * multiply bigint a with int d and put the result in c | ||||
|  * Like mp_mul_d() but with a signed long as the small input | ||||
|  */ | ||||
| static int mp_mul_si(const mp_int *a, long d, mp_int *c) | ||||
| static int s_mp_mul_si(const mp_int *a, long d, mp_int *c) | ||||
| { | ||||
|    mp_int t; | ||||
|    int err, neg = 0; | ||||
| @ -407,3 +407,7 @@ LBL_LS_ERR: | ||||
| #endif | ||||
| #endif | ||||
| #endif | ||||
| 
 | ||||
| /* ref:         $Format:%D$ */ | ||||
| /* git commit:  $Format:%H$ */ | ||||
| /* commit time: $Format:%ai$ */ | ||||
|  | ||||
| @ -124,7 +124,7 @@ struct mp_kronecker_st { | ||||
|    int c[21]; | ||||
| }; | ||||
| static struct mp_kronecker_st kronecker[] = { | ||||
|          //-10, -9, -8, -7,-6, -5, -4, -3, -2, -1, 0, 1,  2,  3, 4,  5,  6,  7,  8, 9, 10
 | ||||
|          /*-10, -9, -8, -7,-6, -5, -4, -3, -2, -1, 0, 1,  2,  3, 4,  5,  6,  7,  8, 9, 10*/ | ||||
|    { -10, {  0, -1,  0, -1, 0,  0,  0,  1,  0, -1, 0, 1,  0, -1, 0,  0,  0,  1,  0, 1,  0  } }, | ||||
|    {  -9, { -1,  0, -1,  1, 0, -1, -1,  0, -1, -1, 0, 1,  1,  0, 1,  1,  0, -1,  1, 0,  1  } }, | ||||
|    {  -8, {  0, -1,  0,  1, 0,  1,  0, -1,  0, -1, 0, 1,  0,  1, 0, -1,  0, -1,  0, 1,  0  } }, | ||||
| @ -674,7 +674,7 @@ int main(void) | ||||
|    printf("\n"); | ||||
| 
 | ||||
| 
 | ||||
|    // strong Miller-Rabin pseudoprime to the first 200 primes (F. Arnault)
 | ||||
|    /* strong Miller-Rabin pseudoprime to the first 200 primes (F. Arnault) */ | ||||
|    puts("Testing mp_prime_is_prime() with Arnault's pseudoprime  803...901 \n"); | ||||
|    mp_read_radix(&a,"91xLNF3roobhzgTzoFIG6P13ZqhOVYSN60Fa7Cj2jVR1g0k89zdahO9/kAiRprpfO1VAp1aBHucLFV/qLKLFb+zonV7R2Vxp1K13ClwUXStpV0oxTNQVjwybmFb5NBEHImZ6V7P6+udRJuH8VbMEnS0H8/pSqQrg82OoQQ2fPpAk6G1hkjqoCv5s/Yr",64); | ||||
|    mp_prime_is_prime(&a, 8, &cnt); | ||||
| @ -682,7 +682,7 @@ int main(void) | ||||
|       printf("Arnault's pseudoprime is not prime but mp_prime_is_prime says it is.\n"); | ||||
|       return EXIT_FAILURE; | ||||
|    } | ||||
|    // About the same size as Arnault's pseudoprime
 | ||||
|    /* About the same size as Arnault's pseudoprime */ | ||||
|    puts("Testing mp_prime_is_prime() with certified prime 2^1119 + 53\n"); | ||||
|    mp_set(&a,1u); | ||||
|    mp_mul_2d(&a,1119,&a); | ||||
|  | ||||
| @ -1,3 +1,16 @@ | ||||
| /* 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. | ||||
|  * | ||||
|  * The library is free for all purposes without any express | ||||
|  * guarantee it works. | ||||
|  */ | ||||
| 
 | ||||
| #if !(defined(LTM1) && defined(LTM2) && defined(LTM3)) | ||||
| #if defined(LTM2) | ||||
| #   define LTM3 | ||||
| @ -1206,3 +1219,7 @@ | ||||
| #else | ||||
| #   define LTM_LAST | ||||
| #endif | ||||
| 
 | ||||
| /* ref:         $Format:%D$ */ | ||||
| /* git commit:  $Format:%H$ */ | ||||
| /* commit time: $Format:%ai$ */ | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user