|
Aleph-w 3.0
A C++ Library for Data Structures and Algorithms
|
Internal helpers for polynomial operations. More...
Functions | |
| template<typename C > | |
| C | power (C base, size_t exp) |
| Fast exponentiation by squaring. | |
| template<typename Int > requires std::is_integral_v<Int> | |
| uint64_t | abs_to_u64 (Int value) noexcept |
| template<typename Int > requires std::is_integral_v<Int> | |
| uint64_t | normalize_mod_u64 (Int value, const uint64_t modulus) noexcept |
| template<typename Int > requires std::is_integral_v<Int> | |
| Int | centered_from_mod_u64 (const uint64_t value, const uint64_t modulus) noexcept |
Internal helpers for polynomial operations.
Definition at line 102 of file tpl_polynomial.H.
References Aleph::divide_and_conquer_partition_dp().
Referenced by Aleph::Gen_Polynomial< Coefficient >::factor_mod_p(), Aleph::Gen_Polynomial< Coefficient >::hensel_lift(), Aleph::Gen_Polynomial< Coefficient >::positive_divisors(), TEST(), Aleph::Gen_Polynomial< Coefficient >::try_extract_primitive_cubic_factor(), Aleph::Gen_Polynomial< Coefficient >::try_extract_primitive_quadratic_factor(), and Aleph::Gen_Polynomial< Coefficient >::try_extract_rational_linear_factor().
|
noexcept |
Definition at line 136 of file tpl_polynomial.H.
References Aleph::divide_and_conquer_partition_dp().
Definition at line 117 of file tpl_polynomial.H.
References Aleph::divide_and_conquer_partition_dp().
Referenced by Aleph::Gen_Polynomial< Coefficient >::eval_mod_u64(), Aleph::Gen_Polynomial< Coefficient >::factor_mod_p(), and Aleph::Gen_Polynomial< Coefficient >::hensel_lift().
| C Aleph::polynomial_detail::power | ( | C | base, |
| size_t | exp | ||
| ) |
Fast exponentiation by squaring.
Computes \(\text{base}^{\text{exp}}\) in \(O(\log \text{exp})\) multiplications.
Definition at line 87 of file tpl_polynomial.H.
References exp().
Referenced by Aleph::Gen_Polynomial< Coefficient >::definite_integral(), Aleph::Gen_Polynomial< Coefficient >::horner_eval(), Aleph::Gen_Polynomial< Coefficient >::mignotte_bound(), Aleph::Gen_Polynomial< Coefficient >::pseudo_divmod(), and Aleph::Gen_Polynomial< Coefficient >::sparse_eval().