FflasFfpack
Public Types | Public Member Functions | Data Fields
rns_double_extended Struct Reference

#include <rns-double.h>

Public Types

typedef Givaro::Integer integer
 
typedef Givaro::ModularExtended< double > ModField
 
typedef double BasisElement
 
typedef rns_double_elt Element
 
typedef rns_double_elt_ptr Element_ptr
 
typedef rns_double_elt_cstptr ConstElement_ptr
 

Public Member Functions

 rns_double_extended (const integer &bound, size_t pbits, bool rnsmod=false, long seed=time(NULL))
 
 rns_double_extended (size_t pbits, size_t size, long seed=time(NULL))
 
template<typename Vect >
 rns_double_extended (const Vect &basis, bool rnsmod=false, long seed=time(NULL))
 
void precompute_cst ()
 
void init (size_t m, size_t n, double *Arns, size_t rda, const integer *A, size_t lda, const integer &maxA, bool RNS_MAJOR=false) const
 
void init (size_t m, size_t n, double *Arns, size_t rda, const integer *A, size_t lda, size_t k, bool RNS_MAJOR=false)
 
void convert (size_t m, size_t n, integer gamma, integer *A, size_t lda, const double *Arns, size_t rda, bool RNS_MAJOR=false)
 
void init (size_t m, double *Arns, const integer *A, size_t lda) const
 
void convert (size_t m, integer *A, const double *Arns) const
 
void reduce (size_t n, double *Arns, size_t rda, bool RNS_MAJOR=false) const
 

Data Fields

std::vector< double, AlignedAllocator< double, Alignment::CACHE_LINE > > _basis
 
std::vector< double, AlignedAllocator< double, Alignment::CACHE_LINE > > _basisMax
 
std::vector< double, AlignedAllocator< double, Alignment::CACHE_LINE > > _negbasis
 
std::vector< double, AlignedAllocator< double, Alignment::CACHE_LINE > > _invbasis
 
std::vector< ModField_field_rns
 
integer _M
 
std::vector< integer_Mi
 
std::vector< double > _MMi
 
std::vector< double > _crt_in
 
std::vector< double > _crt_out
 
size_t _size
 
size_t _pbits
 
size_t _ldm
 

Member Typedef Documentation

◆ integer

typedef Givaro::Integer integer

◆ ModField

typedef Givaro::ModularExtended<double> ModField

◆ BasisElement

typedef double BasisElement

◆ Element

◆ Element_ptr

◆ ConstElement_ptr

Constructor & Destructor Documentation

◆ rns_double_extended() [1/3]

rns_double_extended ( const integer bound,
size_t  pbits,
bool  rnsmod = false,
long  seed = time(NULL) 
)
inline

◆ rns_double_extended() [2/3]

rns_double_extended ( size_t  pbits,
size_t  size,
long  seed = time(NULL) 
)
inline

◆ rns_double_extended() [3/3]

rns_double_extended ( const Vect &  basis,
bool  rnsmod = false,
long  seed = time(NULL) 
)
inline

Member Function Documentation

◆ precompute_cst()

void precompute_cst ( )
inline

◆ init() [1/3]

void init ( size_t  m,
size_t  n,
double *  Arns,
size_t  rda,
const integer A,
size_t  lda,
const integer maxA,
bool  RNS_MAJOR = false 
) const
inline

◆ init() [2/3]

void init ( size_t  m,
size_t  n,
double *  Arns,
size_t  rda,
const integer A,
size_t  lda,
size_t  k,
bool  RNS_MAJOR = false 
)
inline

◆ convert() [1/2]

void convert ( size_t  m,
size_t  n,
integer  gamma,
integer A,
size_t  lda,
const double *  Arns,
size_t  rda,
bool  RNS_MAJOR = false 
)
inline

◆ init() [3/3]

void init ( size_t  m,
double *  Arns,
const integer A,
size_t  lda 
) const
inline

◆ convert() [2/2]

void convert ( size_t  m,
integer A,
const double *  Arns 
) const
inline

◆ reduce()

void reduce ( size_t  n,
double *  Arns,
size_t  rda,
bool  RNS_MAJOR = false 
) const
inline

Field Documentation

◆ _basis

std::vector<double, AlignedAllocator<double, Alignment::CACHE_LINE> > _basis

◆ _basisMax

std::vector<double, AlignedAllocator<double, Alignment::CACHE_LINE> > _basisMax

◆ _negbasis

std::vector<double, AlignedAllocator<double, Alignment::CACHE_LINE> > _negbasis

◆ _invbasis

std::vector<double, AlignedAllocator<double, Alignment::CACHE_LINE> > _invbasis

◆ _field_rns

std::vector<ModField> _field_rns

◆ _M

integer _M

◆ _Mi

std::vector<integer> _Mi

◆ _MMi

std::vector<double> _MMi

◆ _crt_in

std::vector<double> _crt_in

◆ _crt_out

std::vector<double> _crt_out

◆ _size

size_t _size

◆ _pbits

size_t _pbits

◆ _ldm

size_t _ldm

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