MADNESS 0.10.1
madness::hartree_leaf_op_vec< T, NDIM > Struct Template Reference

returns true if the sum of hartree products is a leaf node (compute combined norm & error) More...

#include <funcimpl.h>

Public Types

typedef FunctionImpl< T, NDIM > implT

Public Member Functions

 hartree_leaf_op_vec ()=default
 hartree_leaf_op_vec (const implT *f, const long &k)
bool do_error_leaf_op () const
bool operator() (const Key< NDIM > &key) const
 no pre-determination
bool operator() (const Key< NDIM > &key, const std::vector< Tensor< T > > &fcoeffs, const std::vector< Tensor< T > > &gcoeffs) const
 post-determination for vector of pairs: true if well-represented
template<typename Archive>
void serialize (Archive &ar)

Public Attributes

const FunctionImpl< T, NDIM > * f
long k

Detailed Description

template<typename T, size_t NDIM>
struct madness::hartree_leaf_op_vec< T, NDIM >

returns true if the sum of hartree products is a leaf node (compute combined norm & error)

Generalizes hartree_leaf_op for a sum of matched pairs: Σ_i f_i(1) * g_i(2) Uses the triangle inequality bound over all pairs to determine leafness.

Member Typedef Documentation

◆ implT

template<typename T, size_t NDIM>
typedef FunctionImpl<T,NDIM> madness::hartree_leaf_op_vec< T, NDIM >::implT

Constructor & Destructor Documentation

◆ hartree_leaf_op_vec() [1/2]

template<typename T, size_t NDIM>
madness::hartree_leaf_op_vec< T, NDIM >::hartree_leaf_op_vec ( )
default

◆ hartree_leaf_op_vec() [2/2]

template<typename T, size_t NDIM>
madness::hartree_leaf_op_vec< T, NDIM >::hartree_leaf_op_vec ( const implT * f,
const long & k )
inline

References f, and k.

Member Function Documentation

◆ do_error_leaf_op()

template<typename T, size_t NDIM>
bool madness::hartree_leaf_op_vec< T, NDIM >::do_error_leaf_op ( ) const
inline

◆ operator()() [1/2]

template<typename T, size_t NDIM>
bool madness::hartree_leaf_op_vec< T, NDIM >::operator() ( const Key< NDIM > & key) const
inline

no pre-determination

◆ operator()() [2/2]

template<typename T, size_t NDIM>
bool madness::hartree_leaf_op_vec< T, NDIM >::operator() ( const Key< NDIM > & key,
const std::vector< Tensor< T > > & fcoeffs,
const std::vector< Tensor< T > > & gcoeffs ) const
inline

post-determination for vector of pairs: true if well-represented

Parameters
[in]keythe hi-dimensional key
[in]fcoeffsvector of coefficients of f_i in NS form
[in]gcoeffsvector of coefficients of g_i in NS form

References std::abs(), f, madness::FunctionDefaults< NDIM >::thresh, k, madness::Key< NDIM >::level(), MADNESS_ASSERT, NDIM, and s0.

◆ serialize()

template<typename T, size_t NDIM>
template<typename Archive>
void madness::hartree_leaf_op_vec< T, NDIM >::serialize ( Archive & ar)
inline

References f, and k.

Member Data Documentation

◆ f

template<typename T, size_t NDIM>
const FunctionImpl<T,NDIM>* madness::hartree_leaf_op_vec< T, NDIM >::f

◆ k

template<typename T, size_t NDIM>
long madness::hartree_leaf_op_vec< T, NDIM >::k

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