#include <mpqsPolynom.H>
Public Member Functions | |
CmpqsPolynom () | |
~CmpqsPolynom () | |
void | compute_first_polynomial (const mpz_t fuer_kN, const int M) |
void | compute_next_polynomial (const int step=0) |
void | get_values (const signed int SievePos, mpz_t radix, mpz_t Q) const |
double | get_logval (const signed int SievePos) const |
void | SanityCheck (const signed int SievePos=0) |
void | save (ostream &ostr) |
void | load (istream &in) |
void | load_if_available (istream &in) |
bool | operator< (const mpz_t K) const |
unsigned int | get_A2_mod (const unsigned int m) const |
const mpz_t & | get_A2 () const |
const mpz_t & | get_B () const |
const mpz_t & | get_D () const |
Private Attributes | |
mpz_t | A |
mpz_t | B |
mpz_t | C |
mpz_t | D |
mpz_t | h0 |
mpz_t | h1 |
mpz_t | h2 |
mpz_t | kN |
mpz_t | kN_div2 |
mpz_t | D2_inv_mod_kN |
mpz_t | A2 |
mpz_t | A_div_D_mod_kN |
mpz_t | B_div_2D_mod_kN |
Definition at line 42 of file mpqsPolynom.H.
CmpqsPolynom::CmpqsPolynom | ( | ) | [inline] |
Definition at line 56 of file mpqsPolynom.H.
References A, A2, A_div_D_mod_kN, B, B_div_2D_mod_kN, C, D, D2_inv_mod_kN, h0, h1, h2, kN, kN_div2, and mpz_init().
CmpqsPolynom::~CmpqsPolynom | ( | ) | [inline] |
Definition at line 64 of file mpqsPolynom.H.
References A, A2, A_div_D_mod_kN, B, B_div_2D_mod_kN, C, D, D2_inv_mod_kN, h0, h1, h2, kN, kN_div2, and mpz_clear().
void CmpqsPolynom::compute_first_polynomial | ( | const mpz_t | fuer_kN, | |
const int | M | |||
) |
Definition at line 15 of file mpqsPolynom.cc.
References StaticFactorbaseSettings::BiggestPrime(), collecting_phase_finished, compute_next_polynomial(), cout, D, endl(), Factor_Threshold, kN, kN_div2, mpz_add_ui(), mpz_cmp_ui(), mpz_even_p(), mpz_mul_ui(), mpz_set(), mpz_set_ui(), mpz_sqrt(), and SingleLargePrime_Threshold.
Referenced by main().
void CmpqsPolynom::compute_next_polynomial | ( | const int | step = 0 |
) |
Definition at line 56 of file mpqsPolynom.cc.
References A, A2, A_div_D_mod_kN, B, B_div_2D_mod_kN, C, cerr, numtheory::coprime(), count(), cout, D, D2_inv_mod_kN, endl(), exit(), h0, h1, h2, kN, MARK, mpz_add(), mpz_add_ui(), mpz_clear(), mpz_divexact(), mpz_divisible_p(), mpz_even_p(), mpz_init(), mpz_invert(), mpz_jacobi(), mpz_mod(), mpz_mul(), mpz_mul_ui(), mpz_powm(), mpz_probab_prime_p(), my_mpz_wrapper::mpz_remainder_ui(), mpz_sqrtmod(), mpz_sub(), mpz_sub_ui(), and my_mpz_wrapper::probab_prime_checks.
Referenced by compute_first_polynomial(), load(), load_if_available(), main(), and Cprocess_clients::process_data_stream().
void CmpqsPolynom::get_values | ( | const signed int | SievePos, | |
mpz_t | radix, | |||
mpz_t | Q | |||
) | const |
Definition at line 203 of file mpqsPolynom.cc.
References A_div_D_mod_kN, B_div_2D_mod_kN, kN, kN_div2, mpz_add(), mpz_cmp(), mpz_mod(), mpz_mul(), mpz_mul_si(), and mpz_sub().
double CmpqsPolynom::get_logval | ( | const signed int | SievePos | ) | const |
Definition at line 212 of file mpqsPolynom.cc.
References A_div_D_mod_kN, B_div_2D_mod_kN, std::fabs(), kN, kN_div2, std::log(), mpz_add(), mpz_clear(), mpz_cmp(), mpz_get_d(), mpz_init_set_si(), mpz_mod(), mpz_mul(), and mpz_sub().
void CmpqsPolynom::SanityCheck | ( | const signed int | SievePos = 0 |
) |
Definition at line 170 of file mpqsPolynom.cc.
References A, B, C, cerr, cout, D2_inv_mod_kN, endl(), exit(), h0, h1, h2, kN, kN_div2, mpz_add(), mpz_clear(), mpz_cmp(), mpz_init(), mpz_mod(), mpz_mul(), mpz_mul_ui(), mpz_neg(), mpz_set_si(), and mpz_sub().
void CmpqsPolynom::save | ( | ostream & | ostr | ) |
Definition at line 227 of file mpqsPolynom.cc.
Referenced by main(), Cprocess_clients::process_data_stream(), and statistical_data::StatusReport().
void CmpqsPolynom::load | ( | istream & | in | ) |
Definition at line 234 of file mpqsPolynom.cc.
References compute_next_polynomial(), D, and mpz_sub_ui().
Referenced by CClientPolynomFetcher::fetch(), load_if_available(), and main().
void CmpqsPolynom::load_if_available | ( | istream & | in | ) |
Definition at line 242 of file mpqsPolynom.cc.
References cerr, compute_next_polynomial(), endl(), isspace(), and load().
Referenced by main().
bool CmpqsPolynom::operator< | ( | const mpz_t | K | ) | const [inline] |
unsigned int CmpqsPolynom::get_A2_mod | ( | const unsigned int | m | ) | const [inline] |
Definition at line 86 of file mpqsPolynom.H.
References D, my_mpz_wrapper::mpz_remainder_ui(), and numtheory::squaremod().
const mpz_t& CmpqsPolynom::get_A2 | ( | ) | const [inline] |
const mpz_t& CmpqsPolynom::get_B | ( | ) | const [inline] |
Definition at line 94 of file mpqsPolynom.H.
References B.
Referenced by DynamicFactorArrays::compute_Deltas_for_DynamicFactors().
const mpz_t& CmpqsPolynom::get_D | ( | ) | const [inline] |
Definition at line 95 of file mpqsPolynom.H.
References D.
Referenced by DynamicFactorArrays::compute_Deltas_for_DynamicFactors().
mpz_t CmpqsPolynom::A [private] |
Definition at line 51 of file mpqsPolynom.H.
Referenced by CmpqsPolynom(), compute_next_polynomial(), SanityCheck(), and ~CmpqsPolynom().
mpz_t CmpqsPolynom::B [private] |
Definition at line 51 of file mpqsPolynom.H.
Referenced by CmpqsPolynom(), compute_next_polynomial(), get_B(), SanityCheck(), and ~CmpqsPolynom().
mpz_t CmpqsPolynom::C [private] |
Definition at line 51 of file mpqsPolynom.H.
Referenced by CmpqsPolynom(), compute_next_polynomial(), SanityCheck(), and ~CmpqsPolynom().
mpz_t CmpqsPolynom::D [private] |
Definition at line 51 of file mpqsPolynom.H.
Referenced by CmpqsPolynom(), compute_first_polynomial(), compute_next_polynomial(), get_A2_mod(), get_D(), load(), operator<(), save(), and ~CmpqsPolynom().
mpz_t CmpqsPolynom::h0 [private] |
Definition at line 51 of file mpqsPolynom.H.
Referenced by CmpqsPolynom(), compute_next_polynomial(), SanityCheck(), and ~CmpqsPolynom().
mpz_t CmpqsPolynom::h1 [private] |
Definition at line 51 of file mpqsPolynom.H.
Referenced by CmpqsPolynom(), compute_next_polynomial(), SanityCheck(), and ~CmpqsPolynom().
mpz_t CmpqsPolynom::h2 [private] |
Definition at line 51 of file mpqsPolynom.H.
Referenced by CmpqsPolynom(), compute_next_polynomial(), SanityCheck(), and ~CmpqsPolynom().
mpz_t CmpqsPolynom::kN [private] |
Definition at line 52 of file mpqsPolynom.H.
Referenced by CmpqsPolynom(), compute_first_polynomial(), compute_next_polynomial(), get_logval(), get_values(), SanityCheck(), and ~CmpqsPolynom().
mpz_t CmpqsPolynom::kN_div2 [private] |
Definition at line 52 of file mpqsPolynom.H.
Referenced by CmpqsPolynom(), compute_first_polynomial(), get_logval(), get_values(), SanityCheck(), and ~CmpqsPolynom().
mpz_t CmpqsPolynom::D2_inv_mod_kN [private] |
Definition at line 52 of file mpqsPolynom.H.
Referenced by CmpqsPolynom(), compute_next_polynomial(), SanityCheck(), and ~CmpqsPolynom().
mpz_t CmpqsPolynom::A2 [private] |
Definition at line 53 of file mpqsPolynom.H.
Referenced by CmpqsPolynom(), compute_next_polynomial(), get_A2(), and ~CmpqsPolynom().
mpz_t CmpqsPolynom::A_div_D_mod_kN [private] |
Definition at line 54 of file mpqsPolynom.H.
Referenced by CmpqsPolynom(), compute_next_polynomial(), get_logval(), get_values(), and ~CmpqsPolynom().
mpz_t CmpqsPolynom::B_div_2D_mod_kN [private] |
Definition at line 54 of file mpqsPolynom.H.
Referenced by CmpqsPolynom(), compute_next_polynomial(), get_logval(), get_values(), and ~CmpqsPolynom().