Loading [MathJax]/jax/output/SVG/fonts/TeX/Size1/Regular/Main.js
HLIBpro  2.7
All Classes Functions Variables Typedefs Enumerations Enumerator Friends Modules Pages
TPermHCAGeneratorFn< T_val > Class Template Referenceabstract

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

#include <TLowRankApx.hh>

Inheritance diagram for TPermHCAGeneratorFn< T_val >:
THCA< T >::TGeneratorFn TQuadHCAGenFn< T_ansatzsp, T_testsp, T_val > TInvarBasisQuadHCAGenFn< T_ansatzsp, T_testsp, T_val >

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 >::TGeneratorFn
virtual bool is_complex () const
 indicate complex nature of function
 
virtual value_t eval (const T3Point &x, const T3Point &y) const =0
 
virtual void integrate_dx (const TIndexSet &is, const std::vector< T3Point > &pts, BLAS::Matrix< value_t > &matrix) const =0
 
virtual void integrate_dy (const TIndexSet &is, const std::vector< T3Point > &pts, BLAS::Matrix< value_t > &matrix) const =0
 

Detailed Description

template<typename T_val>
class HLIB::TPermHCAGeneratorFn< T_val >

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).

◆ 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_val >, TInvarBasisQuadHCAGenFn< T_ansatzsp, T_testsp, real >, TInvarBasisQuadHCAGenFn< T_ansatzsp, T_testsp, complex >, TQuadHCAGenFn< T_ansatzsp, T_testsp, T_val >, TQuadHCAGenFn< T_ansatzsp, T_testsp, real >, and TQuadHCAGenFn< T_ansatzsp, T_testsp, complex >.

◆ 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).

◆ 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_val >, TInvarBasisQuadHCAGenFn< T_ansatzsp, T_testsp, real >, TInvarBasisQuadHCAGenFn< T_ansatzsp, T_testsp, complex >, TQuadHCAGenFn< T_ansatzsp, T_testsp, T_val >, TQuadHCAGenFn< T_ansatzsp, T_testsp, real >, and TQuadHCAGenFn< T_ansatzsp, T_testsp, complex >.