#include "config.hpp"#include <cmath>#include "exception.hpp"#include "type_traits.hpp"#include "factory.hpp"#include "cmp.hpp"#include "gcd.hpp"#include "powerest.hpp"#include "std_import.hpp"#include "intalg.cpp"Go to the source code of this file.
Namespaces | |
| namespace | Arageli |
| namespace | Arageli::_Internal |
| namespace | std |
Jacobi symbol. | |
| template<typename T, typename T_factory> | |
| int | Arageli::jacobi (T a, T n, const T_factory &tfctr) |
| Computes the Jacobi symbol (a/n). | |
| template<typename T> | |
| int | Arageli::jacobi (const T &a, const T &n) |
| Computes the Jacobi symbol (a/n). | |
Specialization of std::sqrt for all integer type as Arageli::intsqrt. | |
| char | std::sqrt (char a) |
| unsigned char | std::sqrt (unsigned char a) |
| signed char | std::sqrt (signed char a) |
| unsigned short | std::sqrt (unsigned short a) |
| signed short | std::sqrt (signed short a) |
| unsigned int | std::sqrt (unsigned int a) |
| signed int | std::sqrt (signed int a) |
| unsigned long | std::sqrt (unsigned long a) |
| signed long | std::sqrt (signed long a) |
Defines | |
| #define | ARAGELI_INCLUDE_CPP_WITH_EXPORT_TEMPLATE_INTALG |
Functions | |
| template<typename T, typename T_factory> | |
| T | Arageli::inverse_mod (const T &a, const T &m, const T_factory &tfctr) |
| Returns inversion of a modulo n. | |
| template<typename T> | |
| T | Arageli::inverse_mod (const T &a, const T &n) |
| Returns inversion of a modulo n. | |
| template<typename T, typename I, typename T_factory> | |
| T | Arageli::power_mod (T a, I n, const T &m, const T_factory &tfctr) |
| Exponentiates a in to power n modulo m via squaring and adding. | |
| template<typename T, typename I> | |
| T | Arageli::power_mod (const T &a, const I &n, const T &m) |
| Exponentiates a in to power n modulo m via squaring and adding. | |
| template<typename T> | |
| T | Arageli::_Internal::conditioner (const T &a, const T &b, const T &N) |
| template<typename T, typename V> | |
| T | Arageli::_Internal::conditioner (const T &_a, const T &_b, const T &N, V &d) |
| template<typename T1, typename T2, typename T3> | |
| T3 | Arageli::mod (const T1 &a, const T2 &b, const T3 &d) |
| template<typename T1, typename T2> | |
| T2 | Arageli::mod (const T1 &a, const T2 &b) |
| Compute a modulo b. | |
| template<typename T1, typename T2, typename T3> | |
| T3 | Arageli::div_mod (const T1 &a, const T2 &b, const T3 &d) |
| Compute a/b modulo d. | |
| template<typename T1, typename T2, typename T3> | |
| T3 | Arageli::rem_mod (const T1 &a, const T2 &b, const T3 &d) |
| Compute residue of division a by b modulo d. | |
| template<typename T1, typename T2> | |
| T2 | Arageli::ann (const T1 &a, const T2 &n) |
| Compute n/gcd(a, n). | |
| template<typename T1, typename T2, typename T3> | |
| T3 | Arageli::quo_mod (const T1 &a, const T2 &b, const T3 &d) |
| template<typename T> | |
| T | Arageli::split (const T &a, const T &d) |
| template<typename T> | |
| T | Arageli::stab (const T &a, const T &b, const T &N) |
| template<typename T> | |
| T | Arageli::split_stab (const T &a, const T &b, const T &N) |
| template<typename T> | |
| T | Arageli::unit (const T &a, const T &N) |
| template<typename T> | |
| T | Arageli::stab (const T &a, const T &b, const T &N, const T &d) |
| template<typename T> | |
| T | Arageli::split_stab (const T &a, const T &b, const T &N, const T &d) |
| template<typename T> | |
| T | Arageli::split_mod (const T &a, const T &d) |
| template<typename T> | |
| T | Arageli::stab_mod (const T &a, const T &b, const T &N) |
| template<typename T> | |
| T | Arageli::stab_mod (const T &a, const T &b, const T &N, const T &d) |
| template<typename T> | |
| bool | Arageli::is_invertible_mod (const T &a, const T &N) |
| Returns true iff a is invertible element modulo N. | |
| template<typename T> | |
| std::size_t | Arageli::nbits (const T &a) |
| Compute number of bit in binary notation of a. | |
| template<typename T, typename T_factory> | |
| std::size_t | Arageli::nbits (T a, const T_factory &tfctr) |
| Compute number of bit in binary notation of a. | |
| template<typename T, typename T_factory> | |
| T | Arageli::factorial_successive_multiplication (T a, const T_factory &tfctr) |
| Computes factorial via just successive multiplication (by definition). | |
| template<typename T> | |
| T | Arageli::factorial_successive_multiplication (const T &a) |
| Computes factorial via just successive multiplication (by definition). | |
| template<typename T, typename T_factory> | |
| T | Arageli::factorial_even_odd_multiplication (T a, const T_factory &tfctr) |
| Computes factorial via even and odd multiplier separation. | |
| template<typename T> | |
| T | Arageli::factorial_even_odd_multiplication (const T &a) |
| Computes factorial via even and odd multiplier separation. | |
| template<typename T, typename T_factory> | |
| T | Arageli::factorial (const T &a, const T_factory &tfctr) |
| Computes factorial of a via apropriate algorithm. | |
| template<typename T> | |
| T | Arageli::factorial (const T &a) |
| Computes factorial of a via apropriate algorithm. | |
| template<typename T> | |
| T | Arageli::intsqrt (const T &a) |
| Integer square root of a. | |
| template<typename T, typename TT> | |
| T | Arageli::sqrt_mod_shenks (const T &a, const T &n, const TT &tt) |
| The Shenks algorithm (square root of a modulo n, for n = 1 (mod 4)). | |
| template<typename T> | |
| T | Arageli::sqrt_mod_shenks (const T &a, const T &n) |
| The Shenks algorithm (square root of a modulo n, for n = 1 (mod 4)). | |
| #define ARAGELI_INCLUDE_CPP_WITH_EXPORT_TEMPLATE_INTALG |
Definition at line 347 of file intalg.hpp.
1.4.7