FflasFfpack
|
#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 |
typedef Givaro::Integer integer |
typedef Givaro::Modular<double> ModField |
typedef double BasisElement |
typedef rns_double_elt Element |
typedef rns_double_elt_ptr Element_ptr |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
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 |