00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00035 #if !defined(_TIFA_BERNSTEINISMS_H_)
00036
00040 #define _TIFA_BERNSTEINISMS_H_
00041
00042 #ifdef __cplusplus
00043 extern "C" {
00044 #endif
00045
00046 #include <inttypes.h>
00047 #include "array.h"
00048 #include "x_array_list.h"
00049 #include "hashtable.h"
00050 #include "smooth_filter.h"
00051
00052
00053
00054
00055
00056
00075 mpz_t* bern_51(uint32_t b, const mpz_t u);
00076
00096 mpz_t* bern_53(uint32_t b, const mpz_t u, const mpz_t x);
00097
00117 uint32_array_t* bern_63(const mpz_t x, const mpz_array_t* const tree);
00118
00140 void bern_71(
00141 uint32_array_list_t* const decomp_list,
00142 const mpz_array_t* const to_be_factored,
00143 const uint32_array_t* const odd_primes
00144 );
00145
00146
00147
00148
00149
00150
00178 uint32_t bern_21_rt(
00179 mpz_array_t* const smooth,
00180 const mpz_array_t* const xi,
00181 const mpz_t z
00182 );
00183
00215 uint32_t bern_21(
00216 mpz_array_t* const smooth,
00217 const mpz_array_t* const xi,
00218 const mpz_t z
00219 );
00220
00254 uint32_t bern_21_rt_pairs(
00255 mpz_array_t* const xi,
00256 mpz_array_t* const smooth_yi,
00257 const mpz_array_t* const cand_xi,
00258 const mpz_array_t* const cand_yi,
00259 const mpz_t z
00260 );
00261
00301 uint32_t bern_21_pairs(
00302 mpz_array_t* const xi,
00303 mpz_array_t* const smooth_yi,
00304 const mpz_array_t* const cand_xi,
00305 const mpz_array_t* const cand_yi,
00306 const mpz_t z
00307 );
00308
00354 uint32_t bern_21_rt_pairs_lp(
00355 const mpz_t n,
00356 hashtable_t* const htable,
00357 mpz_array_t* const xi,
00358 mpz_array_t* const smooth_yi,
00359 const mpz_array_t* const cand_xi,
00360 const mpz_array_t* const cand_yi,
00361 const mpz_t z
00362 );
00363
00413 uint32_t bern_21_pairs_lp(
00414 const mpz_t n,
00415 hashtable_t* const htable,
00416 mpz_array_t* const xi,
00417 mpz_array_t* const smooth_yi,
00418 const mpz_array_t* const cand_xi,
00419 const mpz_array_t* const cand_yi,
00420 const mpz_t z
00421 );
00422
00468 uint32_t bern_21_rt_pairs_siqs(
00469 mpz_array_t* const xi,
00470 mpz_array_t* const smooth_yi,
00471 mpz_array_t* const a_for_smooth_gx,
00472 const mpz_array_t* const cand_xi,
00473 const mpz_array_t* const cand_yi,
00474 const mpz_array_t* const cand_a,
00475 const mpz_t z
00476 );
00477
00534 uint32_t bern_21_rt_pairs_lp_siqs(
00535 const mpz_t n,
00536 hashtable_t* const htable,
00537 mpz_array_t* const xi,
00538 mpz_array_t* const smooth_yi,
00539 mpz_array_t* const a_for_smooth_yi,
00540 const mpz_array_t* const cand_xi,
00541 const mpz_array_t* const cand_yi,
00542 const mpz_array_t* const cand_a,
00543 const mpz_t z
00544 );
00545
00595 uint32_t djb_batch_rt(
00596 smooth_filter_t* const filter,
00597 unsigned long int step
00598 );
00599
00600 #ifdef __cplusplus
00601 }
00602 #endif
00603
00604 #endif