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

#include <rns-double.h>

Public Types

typedef Givaro::Integer integer
 
typedef Givaro::Modular< 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 (const integer &bound, size_t pbits, bool rnsmod=false, long seed=time(NULL))
 
 rns_double (size_t pbits, size_t size, long seed=time(NULL))
 
template<typename Vect >
 rns_double (const Vect &basis, bool rnsmod=false, long seed=time(NULL))
 
 rns_double (const RNSIntegerMod< rns_double > &basis, bool rnsmod=false, long seed=time(NULL))
 
void precompute_cst (size_t K=0)
 
template<typename T >
void init (size_t m, size_t n, double *Arns, size_t rda, const T *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) const
 
void init_transpose (size_t m, size_t n, double *Arns, size_t rda, const integer *A, size_t lda, size_t k, bool RNS_MAJOR=false) const
 
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) const
 
void convert_transpose (size_t m, size_t n, integer gamma, integer *A, size_t lda, const double *Arns, size_t rda, bool RNS_MAJOR=false) const
 
void reduce (size_t n, double *Arns, size_t rda, bool RNS_MAJOR=false) const
 
template<size_t K>
void init (size_t m, size_t n, double *Arns, size_t rda, const RecInt::ruint< K > *A, size_t lda, size_t k, bool RNS_MAJOR=false) const
 
template<size_t K>
void convert (size_t m, size_t n, integer gamma, RecInt::ruint< K > *A, size_t lda, const double *Arns, size_t rda, integer p=0, 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
 
integer _mi_sum
 

Member Typedef Documentation

◆ integer

typedef Givaro::Integer integer

◆ ModField

typedef Givaro::Modular<double> ModField

◆ BasisElement

typedef double BasisElement

◆ Element

◆ Element_ptr

◆ ConstElement_ptr

Constructor & Destructor Documentation

◆ rns_double() [1/4]

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

◆ rns_double() [2/4]

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

◆ rns_double() [3/4]

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

◆ rns_double() [4/4]

rns_double ( const RNSIntegerMod< rns_double > &  basis,
bool  rnsmod = false,
long  seed = time(NULL) 
)
inline

Member Function Documentation

◆ precompute_cst()

void precompute_cst ( size_t  K = 0)
inline

◆ init() [1/3]

void init ( size_t  m,
size_t  n,
double *  Arns,
size_t  rda,
const T *  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 
) const
inline

◆ init_transpose()

void init_transpose ( size_t  m,
size_t  n,
double *  Arns,
size_t  rda,
const integer A,
size_t  lda,
size_t  k,
bool  RNS_MAJOR = false 
) const
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 
) const
inline

◆ convert_transpose()

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

◆ reduce()

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

◆ init() [3/3]

void init ( size_t  m,
size_t  n,
double *  Arns,
size_t  rda,
const RecInt::ruint< K > *  A,
size_t  lda,
size_t  k,
bool  RNS_MAJOR = false 
) const
inline

◆ convert() [2/2]

void convert ( size_t  m,
size_t  n,
integer  gamma,
RecInt::ruint< K > *  A,
size_t  lda,
const double *  Arns,
size_t  rda,
integer  p = 0,
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

◆ _mi_sum

integer _mi_sum

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