HLIBpro  3.0
TPermHCAGeneratorFn< T_value > Class Template Referenceabstract

base class for HCA generator functions using row/column permutations More...

#include <TLowRankApx.hh>

Inheritance diagram for TPermHCAGeneratorFn< T_value >:
THCA< T_value >::TGeneratorFn TQuadHCAGenFn< T_ansatzsp, T_testsp, T_value > TInvarBasisQuadHCAGenFn< T_ansatzsp, T_testsp, double > TInvarBasisQuadHCAGenFn< T_ansatzsp, T_testsp, T_value > TLaplaceDLPGenFn< T_ansatzsp, T_testsp, T_value > TLaplaceSLPGenFn< T_ansatzsp, T_testsp, T_value > TExpGenFn< T_ansatzsp, T_testsp, T_value > THelmholtzDLPGenFn< T_ansatzsp, T_testsp, T_value > THelmholtzSLPGenFn< T_ansatzsp, T_testsp, T_value >

Public Member Functions

 TPermHCAGeneratorFn (const TPermutation *row_perm_i2e, const TPermutation *col_perm_i2e)
 
virtual void integrate_dx (const TIndexSet &is, const std::vector< T3Point > &pts, BLAS::Matrix< value_t > &matrix) const
 
virtual void integrate_dy (const TIndexSet &is, const std::vector< T3Point > &pts, BLAS::Matrix< value_t > &matrix) const
 
virtual void integrate_dx_perm (const std::vector< idx_t > &idxs, const std::vector< T3Point > &pts, BLAS::Matrix< value_t > &matrix) const =0
 
virtual void integrate_dy_perm (const std::vector< idx_t > &idxs, const std::vector< T3Point > &pts, BLAS::Matrix< value_t > &matrix) const =0
 
- Public Member Functions inherited from THCA< T_value >::TGeneratorFn
virtual bool is_complex () const
 indicate complex nature of function
 
virtual value_t eval (const T3Point &x, const T3Point &y) const =0
 

Detailed Description

template<typename T_value>
class Hpro::TPermHCAGeneratorFn< T_value >

     Provides basic permutation management for evaluating the integrals
     over the derivatives of the kernel generator function.

Constructor & Destructor Documentation

◆ TPermHCAGeneratorFn()

TPermHCAGeneratorFn ( const TPermutation row_perm_i2e,
const TPermutation col_perm_i2e 
)
inline

constructor

  • order defines (maximal) quadrature order for evaluating the integrals

Member Function Documentation

◆ integrate_dx()

virtual void integrate_dx ( const TIndexSet is,
const std::vector< T3Point > &  pts,
BLAS::Matrix< value_t > &  matrix 
) const
inlinevirtual

Evaluate \( \int \phi_i(x) D_x \gamma(x, y_{l}) dx\) for i ∈ is and points \( y_{l} \) defined by pts. Store results in matrix at index (i,l).

Implements THCA< T_value >::TGeneratorFn.

◆ integrate_dx_perm()

virtual void integrate_dx_perm ( const std::vector< idx_t > &  idxs,
const std::vector< T3Point > &  pts,
BLAS::Matrix< value_t > &  matrix 
) const
pure virtual

Evaluate \( \int \phi_i(x) D_x \gamma(x, y_{l}) dx\) for i ∈ is and points \( y_{l} \) defined by pts. Indices in idxs are given in external order.

Implemented in TInvarBasisQuadHCAGenFn< T_ansatzsp, T_testsp, T_value >, TInvarBasisQuadHCAGenFn< T_ansatzsp, T_testsp, double >, and TQuadHCAGenFn< T_ansatzsp, T_testsp, T_value >.

◆ integrate_dy()

virtual void integrate_dy ( const TIndexSet is,
const std::vector< T3Point > &  pts,
BLAS::Matrix< value_t > &  matrix 
) const
inlinevirtual

Evaluate \( \int \phi_j(y) D_y \gamma(x_{l}, y) dy\) for j ∈ is and points \( x_{l} \) defined by pts. Store results in matrix at index (j,l).

Implements THCA< T_value >::TGeneratorFn.

◆ integrate_dy_perm()

virtual void integrate_dy_perm ( const std::vector< idx_t > &  idxs,
const std::vector< T3Point > &  pts,
BLAS::Matrix< value_t > &  matrix 
) const
pure virtual

Evaluate \( \int \phi_j(y) D_y \gamma(x_{l}, y) dy\) for j ∈ is and points \( x_{l} \) defined by pts. Indices in idxs are given in external order.

Implemented in TInvarBasisQuadHCAGenFn< T_ansatzsp, T_testsp, T_value >, TInvarBasisQuadHCAGenFn< T_ansatzsp, T_testsp, double >, and TQuadHCAGenFn< T_ansatzsp, T_testsp, T_value >.