FflasFfpack
RNSIntegerMod< RNS > Class Template Reference

#include <rns-integer-mod.h>

Data Structures

class  RandIter

Public Types

typedef RNS::Element Element
typedef RNS::Element_ptr Element_ptr
typedef RNS::ConstElement_ptr ConstElement_ptr

Public Member Functions

 RNSIntegerMod (const integer &p, const RNS &myrns)
const rns_doublerns () const
const RNSInteger< RNS > & delayed () const
size_t size () const
bool isOne (const Element &x) const
bool isMOne (const Element &x) const
bool isZero (const Element &x) const
integercharacteristic (integer &p) const
integer characteristic () const
integercardinality (integer &p) const
integer cardinality () const
integer minElement () const
integer maxElement () const
Elementinit (Element &x) const
Elementinit (Element &x, const Givaro::Integer &y) const
Elementreduce (Element &x, const Element &y) const
Elementreduce (Element &x) const
Elementinit (Element &x, const Element &y) const
Givaro::Integer convert (Givaro::Integer &x, const Element &y) const
Elementassign (Element &x, const Element &y) const
Elementadd (Element &x, const Element &y, const Element &z) const
Elementsub (Element &x, const Element &y, const Element &z) const
Elementneg (Element &x, const Element &y) const
Elementmul (Element &x, const Element &y, const Element &z) const
Elementaxpyin (Element &x, const Element &y, const Element &z) const
Elementinv (Element &x, const Element &y) const
bool areEqual (const Element &x, const Element &y) const
std::ostream & write (std::ostream &os, const Element &y) const
std::ostream & write (std::ostream &os) const
void reduce_modp (size_t n, Element_ptr B) const
std::ostream & write_matrix (std::ostream &c, const double *E, int n, int m, int lda) const
std::ostream & write_matrix_long (std::ostream &c, const double *E, int n, int m, int lda) const
void reduce_modp (size_t m, size_t n, Element_ptr B, size_t lda) const
void reduce_modp_rnsmajor (size_t n, Element_ptr B) const

Data Fields

Element one
Element mOne
Element zero

Protected Types

typedef RNS::BasisElement BasisElement
typedef Givaro::Modular< BasisElementModField
typedef Givaro::Integer integer

Protected Attributes

integer _p
std::vector< BasisElement, AlignedAllocator< BasisElement, Alignment::CACHE_LINE > > _Mi_modp_rns
std::vector< BasisElement, AlignedAllocator< BasisElement, Alignment::CACHE_LINE > > _iM_modp_rns
const RNS_rns
Givaro::Modular< Givaro::Integer > _F
RNSInteger< RNS_RNSdelayed

Member Typedef Documentation

◆ Element

template<typename RNS>
typedef RNS::Element Element

◆ Element_ptr

template<typename RNS>
typedef RNS::Element_ptr Element_ptr

◆ ConstElement_ptr

template<typename RNS>
typedef RNS::ConstElement_ptr ConstElement_ptr

◆ BasisElement

template<typename RNS>
typedef RNS::BasisElement BasisElement
protected

◆ ModField

template<typename RNS>
typedef Givaro::Modular<BasisElement> ModField
protected

◆ integer

template<typename RNS>
typedef Givaro::Integer integer
protected

Constructor & Destructor Documentation

◆ RNSIntegerMod()

template<typename RNS>
RNSIntegerMod ( const integer & p,
const RNS & myrns )
inline

Member Function Documentation

◆ rns()

template<typename RNS>
const rns_double & rns ( ) const
inline

◆ delayed()

template<typename RNS>
const RNSInteger< RNS > & delayed ( ) const
inline

◆ size()

template<typename RNS>
size_t size ( ) const
inline

◆ isOne()

template<typename RNS>
bool isOne ( const Element & x) const
inline

◆ isMOne()

template<typename RNS>
bool isMOne ( const Element & x) const
inline

◆ isZero()

template<typename RNS>
bool isZero ( const Element & x) const
inline

◆ characteristic() [1/2]

template<typename RNS>
integer & characteristic ( integer & p) const
inline

◆ characteristic() [2/2]

template<typename RNS>
integer characteristic ( ) const
inline

◆ cardinality() [1/2]

template<typename RNS>
integer & cardinality ( integer & p) const
inline

◆ cardinality() [2/2]

template<typename RNS>
integer cardinality ( ) const
inline

◆ minElement()

template<typename RNS>
integer minElement ( ) const
inline

◆ maxElement()

template<typename RNS>
integer maxElement ( ) const
inline

◆ init() [1/3]

template<typename RNS>
Element & init ( Element & x) const
inline

◆ init() [2/3]

template<typename RNS>
Element & init ( Element & x,
const Givaro::Integer & y ) const
inline

◆ reduce() [1/2]

template<typename RNS>
Element & reduce ( Element & x,
const Element & y ) const
inline

◆ reduce() [2/2]

template<typename RNS>
Element & reduce ( Element & x) const
inline

◆ init() [3/3]

template<typename RNS>
Element & init ( Element & x,
const Element & y ) const
inline

◆ convert()

template<typename RNS>
Givaro::Integer convert ( Givaro::Integer & x,
const Element & y ) const
inline

◆ assign()

template<typename RNS>
Element & assign ( Element & x,
const Element & y ) const
inline

◆ add()

template<typename RNS>
Element & add ( Element & x,
const Element & y,
const Element & z ) const
inline

◆ sub()

template<typename RNS>
Element & sub ( Element & x,
const Element & y,
const Element & z ) const
inline

◆ neg()

template<typename RNS>
Element & neg ( Element & x,
const Element & y ) const
inline

◆ mul()

template<typename RNS>
Element & mul ( Element & x,
const Element & y,
const Element & z ) const
inline

◆ axpyin()

template<typename RNS>
Element & axpyin ( Element & x,
const Element & y,
const Element & z ) const
inline

◆ inv()

template<typename RNS>
Element & inv ( Element & x,
const Element & y ) const
inline

◆ areEqual()

template<typename RNS>
bool areEqual ( const Element & x,
const Element & y ) const
inline

◆ write() [1/2]

template<typename RNS>
std::ostream & write ( std::ostream & os,
const Element & y ) const
inline

◆ write() [2/2]

template<typename RNS>
std::ostream & write ( std::ostream & os) const
inline

◆ reduce_modp() [1/2]

template<typename RNS>
void reduce_modp ( size_t n,
Element_ptr B ) const
inline

◆ write_matrix()

template<typename RNS>
std::ostream & write_matrix ( std::ostream & c,
const double * E,
int n,
int m,
int lda ) const
inline

◆ write_matrix_long()

template<typename RNS>
std::ostream & write_matrix_long ( std::ostream & c,
const double * E,
int n,
int m,
int lda ) const
inline

◆ reduce_modp() [2/2]

template<typename RNS>
void reduce_modp ( size_t m,
size_t n,
Element_ptr B,
size_t lda ) const
inline

◆ reduce_modp_rnsmajor()

template<typename RNS>
void reduce_modp_rnsmajor ( size_t n,
Element_ptr B ) const
inline

Field Documentation

◆ _p

template<typename RNS>
integer _p
protected

◆ _Mi_modp_rns

template<typename RNS>
std::vector<BasisElement, AlignedAllocator<BasisElement, Alignment::CACHE_LINE> > _Mi_modp_rns
protected

◆ _iM_modp_rns

template<typename RNS>
std::vector<BasisElement, AlignedAllocator<BasisElement, Alignment::CACHE_LINE> > _iM_modp_rns
protected

◆ _rns

template<typename RNS>
const RNS* _rns
protected

◆ _F

template<typename RNS>
Givaro::Modular<Givaro::Integer> _F
protected

◆ _RNSdelayed

template<typename RNS>
RNSInteger<RNS> _RNSdelayed
protected

◆ one

template<typename RNS>
Element one

◆ mOne

template<typename RNS>
Element mOne

◆ zero

template<typename RNS>
Element zero

The documentation for this class was generated from the following files: