linbox
BlasMatrixApplyDomain< Domain, IMatrix > Class Template Reference

#include <apply.h>

Public Types

typedef Domain::Element Element
 
typedef BlasVector< DomainVector
 
typedef IMatrix Matrix
 

Public Member Functions

 BlasMatrixApplyDomain (const Domain &D, const IMatrix &Mat)
 
 ~BlasMatrixApplyDomain ()
 
ApplyChoice setup (LinBox::integer prime)
 
VectorapplyV (Vector &y, Vector &x, Vector &b) const
 
VectorapplyVTrans (Vector &y, Vector &x) const
 
IMatrix & applyM (IMatrix &Y, const IMatrix &X) const
 

Protected Attributes

Domain _domain
 
const IMatrix & _matM
 
MatrixDomain< Domain_MD
 
size_t _m
 
size_t _n
 
bool use_chunks
 
bool use_neg
 
size_t chunk_size
 
size_t num_chunks
 
double * chunks
 
double * vchunks
 
integer shift
 
ApplyChoice _switcher
 
MultiModDouble_rns
 
Element _prime
 
Element _q
 
Element _inv_q
 
Element _pq
 
Element _h_pq
 
Timer _apply
 
Timer _convert_data
 
Timer _convert_result
 

Member Typedef Documentation

◆ Element

template<class Domain, class IMatrix>
typedef Domain::Element Element

◆ Vector

template<class Domain, class IMatrix>
typedef BlasVector<Domain> Vector

◆ Matrix

template<class Domain, class IMatrix>
typedef IMatrix Matrix

Constructor & Destructor Documentation

◆ BlasMatrixApplyDomain()

template<class Domain, class IMatrix>
BlasMatrixApplyDomain ( const Domain & D,
const IMatrix & Mat )
inline

◆ ~BlasMatrixApplyDomain()

template<class Domain, class IMatrix>
~BlasMatrixApplyDomain ( )
inline

Member Function Documentation

◆ setup()

template<class Domain, class IMatrix>
ApplyChoice setup ( LinBox::integer prime)
inline

◆ applyV()

template<class Domain, class IMatrix>
Vector & applyV ( Vector & y,
Vector & x,
Vector & b ) const
inline

◆ applyVTrans()

template<class Domain, class IMatrix>
Vector & applyVTrans ( Vector & y,
Vector & x ) const
inline

◆ applyM()

template<class Domain, class IMatrix>
IMatrix & applyM ( IMatrix & Y,
const IMatrix & X ) const
inline
Bug
why not use FFLAS ?

Field Documentation

◆ _domain

template<class Domain, class IMatrix>
Domain _domain
protected

◆ _matM

template<class Domain, class IMatrix>
const IMatrix& _matM
protected

◆ _MD

template<class Domain, class IMatrix>
MatrixDomain<Domain> _MD
protected

◆ _m

template<class Domain, class IMatrix>
size_t _m
protected

◆ _n

template<class Domain, class IMatrix>
size_t _n
protected

◆ use_chunks

template<class Domain, class IMatrix>
bool use_chunks
protected

◆ use_neg

template<class Domain, class IMatrix>
bool use_neg
protected

◆ chunk_size

template<class Domain, class IMatrix>
size_t chunk_size
protected

◆ num_chunks

template<class Domain, class IMatrix>
size_t num_chunks
protected

◆ chunks

template<class Domain, class IMatrix>
double* chunks
protected

◆ vchunks

template<class Domain, class IMatrix>
double* vchunks
protected

◆ shift

template<class Domain, class IMatrix>
integer shift
protected

◆ _switcher

template<class Domain, class IMatrix>
ApplyChoice _switcher
protected

◆ _rns

template<class Domain, class IMatrix>
MultiModDouble* _rns
protected

◆ _prime

template<class Domain, class IMatrix>
Element _prime
protected

◆ _q

template<class Domain, class IMatrix>
Element _q
protected

◆ _inv_q

template<class Domain, class IMatrix>
Element _inv_q
protected

◆ _pq

template<class Domain, class IMatrix>
Element _pq
protected

◆ _h_pq

template<class Domain, class IMatrix>
Element _h_pq
protected

◆ _apply

template<class Domain, class IMatrix>
Timer _apply
mutableprotected

◆ _convert_data

template<class Domain, class IMatrix>
Timer _convert_data
protected

◆ _convert_result

template<class Domain, class IMatrix>
Timer _convert_result
protected

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