FflasFfpack
Data Structures | Public Types | Public Member Functions | Data Fields | Protected Types | Protected Attributes
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

◆ Element_ptr

◆ ConstElement_ptr

◆ BasisElement

typedef RNS::BasisElement BasisElement
protected

◆ ModField

typedef Givaro::Modular<BasisElement> ModField
protected

◆ integer

typedef Givaro::Integer integer
protected

Constructor & Destructor Documentation

◆ RNSIntegerMod()

RNSIntegerMod ( const integer p,
const RNS myrns 
)
inline

Member Function Documentation

◆ rns()

const rns_double & rns ( ) const
inline

◆ delayed()

const RNSInteger< RNS > & delayed ( ) const
inline

◆ size()

size_t size ( ) const
inline

◆ isOne()

bool isOne ( const Element x) const
inline

◆ isMOne()

bool isMOne ( const Element x) const
inline

◆ isZero()

bool isZero ( const Element x) const
inline

◆ characteristic() [1/2]

integer & characteristic ( integer p) const
inline

◆ characteristic() [2/2]

integer characteristic ( ) const
inline

◆ cardinality() [1/2]

integer & cardinality ( integer p) const
inline

◆ cardinality() [2/2]

integer cardinality ( ) const
inline

◆ minElement()

integer minElement ( ) const
inline

◆ maxElement()

integer maxElement ( ) const
inline

◆ init() [1/3]

Element & init ( Element x) const
inline

◆ init() [2/3]

Element & init ( Element x,
const Givaro::Integer &  y 
) const
inline

◆ reduce() [1/2]

Element & reduce ( Element x,
const Element y 
) const
inline

◆ reduce() [2/2]

Element & reduce ( Element x) const
inline

◆ init() [3/3]

Element & init ( Element x,
const Element y 
) const
inline

◆ convert()

Givaro::Integer convert ( Givaro::Integer &  x,
const Element y 
) const
inline

◆ assign()

Element & assign ( Element x,
const Element y 
) const
inline

◆ add()

Element & add ( Element x,
const Element y,
const Element z 
) const
inline

◆ sub()

Element & sub ( Element x,
const Element y,
const Element z 
) const
inline

◆ neg()

Element & neg ( Element x,
const Element y 
) const
inline

◆ mul()

Element & mul ( Element x,
const Element y,
const Element z 
) const
inline

◆ axpyin()

Element & axpyin ( Element x,
const Element y,
const Element z 
) const
inline

◆ inv()

Element & inv ( Element x,
const Element y 
) const
inline

◆ areEqual()

bool areEqual ( const Element x,
const Element y 
) const
inline

◆ write() [1/2]

std::ostream & write ( std::ostream &  os,
const Element y 
) const
inline

◆ write() [2/2]

std::ostream & write ( std::ostream &  os) const
inline

◆ reduce_modp() [1/2]

void reduce_modp ( size_t  n,
Element_ptr  B 
) const
inline

◆ write_matrix()

std::ostream & write_matrix ( std::ostream &  c,
const double *  E,
int  n,
int  m,
int  lda 
) const
inline

◆ write_matrix_long()

std::ostream & write_matrix_long ( std::ostream &  c,
const double *  E,
int  n,
int  m,
int  lda 
) const
inline

◆ reduce_modp() [2/2]

void reduce_modp ( size_t  m,
size_t  n,
Element_ptr  B,
size_t  lda 
) const
inline

◆ reduce_modp_rnsmajor()

void reduce_modp_rnsmajor ( size_t  n,
Element_ptr  B 
) const
inline

Field Documentation

◆ _p

integer _p
protected

◆ _Mi_modp_rns

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

◆ _iM_modp_rns

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

◆ _rns

const RNS* _rns
protected

◆ _F

Givaro::Modular<Givaro::Integer> _F
protected

◆ _RNSdelayed

RNSInteger<RNS> _RNSdelayed
protected

◆ one

Element one

◆ mOne

Element mOne

◆ zero

Element zero

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