#include <basix/generic.hpp>
#include <basix/wrap.hpp>
#include <basix/operators.hpp>
#include <basix/int.hpp>
#include <numerix/integer.hpp>
#include <numerix/modulus.hpp>
Go to the source code of this file.
Classes
- struct modular_local
- class modular_local::modulus_storage< M >
- struct modular_global
- class modular_global::modulus_storage< M >
- struct modular_fixed< C, p >
- class modular_fixed< C, p >::modulus_storage< M >
- struct modular_variant_helper< M >
- class modular< M, V >
- struct project_helper< modular< M, V > >
- struct as_helper< modular< TM, TV >, modular< SM, SV > >
- struct as_helper< C, modular< modulus< C, V >, W > >
- struct as_helper< generic, modular< modulus< C, V >, W > >
- class modular< M, modular_local >
- struct as_helper< modular< TM, modular_local >, modular< SM, SV > >
Namespaces
Defines
- #define Modular_variant(M) modular_variant_helper<M>::MV
- #define TMPL_DEF template<typename M, typename V= typename Modular_variant(M)>
- #define TMPL template<typename M, typename V>
- #define Modulus modulus<C,V>
- #define Modular modular<M,V>
- #define TMPL template<typename M>
- #define Modulus modulus<C,V>
- #define Modular modular<M,modular_local>
- #define mmx_modular(R) modular<modulus<R >,modular_local>
Functions
- STYPE_TO_TYPE (template< typename M, typename V >, lift_type, modular< M, V >, typename modular< M, V >::C)
- template<typename M , typename V > modular< M, V >::C lift (const modular< M, V > &x)
- template<typename M , typename V > M get_modulus (const modular< M, V > &x)
- template<typename M , typename V > void set_modulus (modular< M, V > &x, const M &p)
- WRAP_WRAPPED_IMPL (template< typename M, typename V > inline, modular< M, V >) template< typename M
- V modular< M, V > & operator+= (modular< M, V > &dest, const modular< M, V > &s)
- template<typename M , typename V > modular< M, V > & operator-= (modular< M, V > &dest, const modular< M, V > &s)
- template<typename M , typename V > modular< M, V > & operator*= (modular< M, V > &dest, const modular< M, V > &s)
- template<typename M , typename V > modular< M, V > & operator/= (modular< M, V > &dest, const modular< M, V > &s)
- template<typename M , typename V > modular< M, V > operator+ (const modular< M, V > &a, const modular< M, V > &b)
- template<typename M , typename V > modular< M, V > operator+ (const modular< M, V > &a, const typename M::base &b)
- template<typename M , typename V > modular< M, V > operator+ (const typename M::base &a, const modular< M, V > &b)
- template<typename M , typename V > modular< M, V > operator- (const modular< M, V > &a)
- template<typename M , typename V > modular< M, V > operator- (const modular< M, V > &a, const modular< M, V > &b)
- template<typename M , typename V > modular< M, V > operator- (const modular< M, V > &a, const typename M::base &b)
- template<typename M , typename V > modular< M, V > operator- (const typename M::base &a, const modular< M, V > &b)
- template<typename M , typename V > modular< M, V > operator* (const modular< M, V > &a, const modular< M, V > &b)
- template<typename M , typename V > modular< M, V > operator* (const modular< M, V > &a, const typename M::base &b)
- template<typename M , typename V > modular< M, V > operator* (const typename M::base &a, const modular< M, V > &b)
- template<typename M , typename V > modular< M, V > operator/ (const modular< M, V > &a, const modular< M, V > &b)
- template<typename M , typename V > modular< M, V > operator/ (const modular< M, V > &a, const typename M::base &b)
- template<typename M , typename V > modular< M, V > operator/ (const typename M::base &a, const modular< M, V > &b)
- template<typename M , typename V > modular< M, V > invert (const modular< M, V > &a)
- template<typename M , typename V > modular< M, V > gcd (const modular< M, V > &a, const modular< M, V > &b)
- template<typename M , typename V > modular< M, V > lcm (const modular< M, V > &a, const modular< M, V > &b)
- WRAP_PRINT_IMPL (template< typename M, typename V > inline, modular< M, V >) ARITH_INT_SUGAR(template< typename M
- template<typename M > M get_modulus (const modular< M, modular_local > &x)
- template<typename M > void set_modulus (modular< M, modular_local > &x, const M &p)
- template<typename M > nat hash (const modular< M, modular_local > &c)
- template<typename M > nat exact_hash (const modular< M, modular_local > &c)
- template<typename M > nat hard_hash (const modular< M, modular_local > &c)
- template<typename M > bool exact_eq (const modular< M, modular_local > &c1, const modular< M, modular_local > &c2)
- template<typename M > bool exact_neq (const modular< M, modular_local > &c1, const modular< M, modular_local > &c2)
- template<typename M > bool hard_eq (const modular< M, modular_local > &c1, const modular< M, modular_local > &c2)
- template<typename M > bool hard_neq (const modular< M, modular_local > &c1, const modular< M, modular_local > &c2)
- template<typename M > modular< M, modular_local > & operator+= (modular< M, modular_local > &dest, const modular< M, modular_local > &s)
- template<typename M > modular< M, modular_local > & operator-= (modular< M, modular_local > &dest, const modular< M, modular_local > &s)
- template<typename M > modular< M, modular_local > & operator*= (modular< M, modular_local > &dest, const modular< M, modular_local > &s)
- template<typename M > modular< M, modular_local > & operator/= (modular< M, modular_local > &dest, const modular< M, modular_local > &s)
- template<typename M > modular< M, modular_local > operator+ (const modular< M, modular_local > &a, const modular< M, modular_local > &b)
- template<typename M > modular< M, modular_local > operator- (const modular< M, modular_local > &a)
- template<typename M > modular< M, modular_local > operator- (const modular< M, modular_local > &a, const modular< M, modular_local > &b)
- template<typename M > modular< M, modular_local > operator* (const modular< M, modular_local > &a, const modular< M, modular_local > &b)
- template<typename M > modular< M, modular_local > operator/ (const modular< M, modular_local > &a, const modular< M, modular_local > &b)
- template<typename M > modular< M, modular_local > invert (const modular< M, modular_local > &a)
Variables
- modular< M, V > POOR_MAN_SQRT_SUGAR (template< typename M, typename V >, modular< M, V >) POOR_MAN_ELEMENTARY_SUGAR(template< typename M
Define Documentation
#define mmx_modular |
( |
|
R | ) |
modular<modulus<R >,modular_local> |
#define Modular modular<M,V> |
Definition at line 306 of file modular.hpp.
Referenced by mmx::invert(), project_helper< modular< M, V > >::op(), modular< M, modular_local >::operator!=(), mmx::operator*(), mmx::operator+(), mmx::operator-(), mmx::operator/(), and modular< M, modular_local >::operator==().
#define Modular modular<M,modular_local> |
#define Modular_variant |
( |
|
M | ) |
modular_variant_helper<M>::MV |
#define Modulus modulus<C,V> |
#define Modulus modulus<C,V> |
#define TMPL template<typename M> |
#define TMPL template<typename M, typename V> |
#define TMPL_DEF template<typename M, typename V= typename Modular_variant(M)> |