Far field matrix F. More...

#include <f03.hh>

Inheritance diagram for cluster::F03< NodeX, NodeY >:
cluster::ClstF< NodeX, NodeY > concepts::OutputOperator

Classes

class  Ffld
 Class to store the far field coefficients. More...
 

Public Types

typedef ClstF< NodeX, NodeY >::FX FX
 
typedef ClstF< NodeX, NodeY >::FY FY
 
typedef ClstF< NodeX, NodeY >::NfldNodes NfldNodes
 
typedef ClstF< NodeX, NodeY >::NfldScan NfldScan
 
typedef ClstF< NodeX, NodeY >::TraitsX TraitsX
 Interface of the far field. More...
 
typedef ClstF< NodeX, NodeY >::TraitsY TraitsY
 

Public Member Functions

 F03 (const Tree< NodeX > &treeX, const Tree< NodeY > &treeY, const ExpansionF< FX > &exp, concepts::Real eps, concepts::Real s, uint minsz, int maxnffldval)
 
std::ostream & info (std::ostream &os, uint idxX, uint idxY) const
 
float memory () const
 Memory used by F03 in bytes. More...
 
void operator() (const ClstY< NodeY > &vecY, ClstX< NodeX > &vecX) const
 Application operator. More...
 
NfldScanscan () const
 
 ~F03 ()
 

Protected Member Functions

std::ostream & info (std::ostream &os) const
 Returns information in an output stream. More...
 

Private Member Functions

void constructor_ (const NodeX *clstX, const NodeY *clstY)
 Constructor for recursive calls. More...
 
template<class Trts , class Nd >
uint info_ (uint idx, const Nd *clst, std::unordered_map< uint, uint > &nlf) const
 

Private Attributes

concepts::Real eps_
 
const ExpansionF< FX > & exp_
 Kernel expansion. More...
 
Ffldffld_
 Far field entries. More...
 
FColExpffldval_
 Buffer for the values computed on the fly. More...
 
uint m_
 Expansion order. More...
 
int maxnffldval_
 
uint minsz_
 Minimal size for a cluster pair in the far field. More...
 
uint nffld_
 Number of far field entries. More...
 
uint nffldval_
 
concepts::Joiner< NfldNodes, 1 > * nfld_
 Near field entries. More...
 
uint nnfld_
 Number of near field entries. More...
 
concepts::Real s_
 
const Tree< NodeX > & treeX_
 Cluster trees. More...
 
const Tree< NodeY > & treeY_
 

Detailed Description

template<class NodeX, class NodeY>
class cluster::F03< NodeX, NodeY >

Far field matrix F.

Expansion order m, $\eta^m/(c-r)^s < \epsilon$, at most $maxnffldval * 1000$ far field entries are saved. Stores just a few far field values and computes the other one on the fly.

Parameters
NodeXCluster node
NodeYCluster node

Definition at line 26 of file f03.hh.

Member Typedef Documentation

◆ FX

template<class NodeX , class NodeY >
typedef ClstF<NodeX, NodeY>::FX cluster::F03< NodeX, NodeY >::FX

Definition at line 31 of file f03.hh.

◆ FY

template<class NodeX , class NodeY >
typedef ClstF<NodeX, NodeY>::FY cluster::F03< NodeX, NodeY >::FY

Definition at line 32 of file f03.hh.

◆ NfldNodes

template<class NodeX , class NodeY >
typedef ClstF<NodeX, NodeY>::NfldNodes cluster::F03< NodeX, NodeY >::NfldNodes

Definition at line 33 of file f03.hh.

◆ NfldScan

template<class NodeX , class NodeY >
typedef ClstF<NodeX, NodeY>::NfldScan cluster::F03< NodeX, NodeY >::NfldScan

Definition at line 34 of file f03.hh.

◆ TraitsX

template<class NodeX , class NodeY >
typedef ClstF<NodeX, NodeY>::TraitsX cluster::F03< NodeX, NodeY >::TraitsX

Interface of the far field.

Definition at line 29 of file f03.hh.

◆ TraitsY

template<class NodeX , class NodeY >
typedef ClstF<NodeX, NodeY>::TraitsY cluster::F03< NodeX, NodeY >::TraitsY

Definition at line 30 of file f03.hh.

Constructor & Destructor Documentation

◆ F03()

template<class NodeX , class NodeY >
cluster::F03< NodeX, NodeY >::F03 ( const Tree< NodeX > &  treeX,
const Tree< NodeY > &  treeY,
const ExpansionF< FX > &  exp,
concepts::Real  eps,
concepts::Real  s,
uint  minsz,
int  maxnffldval 
)

◆ ~F03()

template<class NodeX , class NodeY >
cluster::F03< NodeX, NodeY >::~F03 ( )

Member Function Documentation

◆ constructor_()

template<class NodeX , class NodeY >
void cluster::F03< NodeX, NodeY >::constructor_ ( const NodeX *  clstX,
const NodeY *  clstY 
)
private

Constructor for recursive calls.

◆ info() [1/2]

template<class NodeX , class NodeY >
std::ostream& cluster::F03< NodeX, NodeY >::info ( std::ostream &  os) const
protectedvirtual

Returns information in an output stream.

Reimplemented from concepts::OutputOperator.

◆ info() [2/2]

template<class NodeX , class NodeY >
std::ostream& cluster::F03< NodeX, NodeY >::info ( std::ostream &  os,
uint  idxX,
uint  idxY 
) const

◆ info_()

template<class NodeX , class NodeY >
template<class Trts , class Nd >
uint cluster::F03< NodeX, NodeY >::info_ ( uint  idx,
const Nd *  clst,
std::unordered_map< uint, uint > &  nlf 
) const
private

◆ memory()

template<class NodeX , class NodeY >
float cluster::F03< NodeX, NodeY >::memory
inline

Memory used by F03 in bytes.

Definition at line 122 of file f03.hh.

◆ operator()()

template<class NodeX , class NodeY >
void cluster::F03< NodeX, NodeY >::operator() ( const ClstY< NodeY > &  vecY,
ClstX< NodeX > &  vecX 
) const
virtual

Application operator.

Implements cluster::ClstF< NodeX, NodeY >.

◆ scan()

template<class NodeX , class NodeY >
NfldScan* cluster::F03< NodeX, NodeY >::scan ( ) const
inlinevirtual

Implements cluster::ClstF< NodeX, NodeY >.

Definition at line 113 of file f03.hh.

Member Data Documentation

◆ eps_

template<class NodeX , class NodeY >
concepts::Real cluster::F03< NodeX, NodeY >::eps_
private

Definition at line 77 of file f03.hh.

◆ exp_

template<class NodeX , class NodeY >
const ExpansionF<FX>& cluster::F03< NodeX, NodeY >::exp_
private

Kernel expansion.

Definition at line 73 of file f03.hh.

◆ ffld_

template<class NodeX , class NodeY >
Ffld* cluster::F03< NodeX, NodeY >::ffld_
private

Far field entries.

Definition at line 84 of file f03.hh.

◆ ffldval_

template<class NodeX , class NodeY >
FColExp* cluster::F03< NodeX, NodeY >::ffldval_
private

Buffer for the values computed on the fly.

Definition at line 88 of file f03.hh.

◆ m_

template<class NodeX , class NodeY >
uint cluster::F03< NodeX, NodeY >::m_
private

Expansion order.

Definition at line 76 of file f03.hh.

◆ maxnffldval_

template<class NodeX , class NodeY >
int cluster::F03< NodeX, NodeY >::maxnffldval_
private

Definition at line 81 of file f03.hh.

◆ minsz_

template<class NodeX , class NodeY >
uint cluster::F03< NodeX, NodeY >::minsz_
private

Minimal size for a cluster pair in the far field.

Definition at line 80 of file f03.hh.

◆ nffld_

template<class NodeX , class NodeY >
uint cluster::F03< NodeX, NodeY >::nffld_
private

Number of far field entries.

Definition at line 86 of file f03.hh.

◆ nffldval_

template<class NodeX , class NodeY >
uint cluster::F03< NodeX, NodeY >::nffldval_
private

Definition at line 89 of file f03.hh.

◆ nfld_

template<class NodeX , class NodeY >
concepts::Joiner<NfldNodes, 1>* cluster::F03< NodeX, NodeY >::nfld_
private

Near field entries.

Definition at line 91 of file f03.hh.

◆ nnfld_

template<class NodeX , class NodeY >
uint cluster::F03< NodeX, NodeY >::nnfld_
private

Number of near field entries.

Definition at line 93 of file f03.hh.

◆ s_

template<class NodeX , class NodeY >
concepts::Real cluster::F03< NodeX, NodeY >::s_
private

Definition at line 78 of file f03.hh.

◆ treeX_

template<class NodeX , class NodeY >
const Tree<NodeX>& cluster::F03< NodeX, NodeY >::treeX_
private

Cluster trees.

Definition at line 69 of file f03.hh.

◆ treeY_

template<class NodeX , class NodeY >
const Tree<NodeY>& cluster::F03< NodeX, NodeY >::treeY_
private

Definition at line 70 of file f03.hh.


The documentation for this class was generated from the following file:
Page URL: http://wiki.math.ethz.ch/bin/view/Concepts/WebHome
21 August 2020
© 2020 Eidgenössische Technische Hochschule Zürich