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

#include <leafop.h>

Inheritance diagram for madness::LeafOpBase< T, NDIM >:

Public Member Functions

virtual ~LeafOpBase ()=default
virtual bool do_pre_screening () const
 if true, the op uses pre_screening(key) before computing coeffs.
virtual bool post_screening (const Key< NDIM > &, const GenTensor< T > &) const
virtual bool pre_screening (const Key< NDIM > &) const
virtual bool special_refinement_needed (const Key< NDIM > &) const
 true ⇒ force refinement at the current key (e.g. cusp / special-box).

Detailed Description

template<typename T, std::size_t NDIM>
struct madness::LeafOpBase< T, NDIM >

Abstract base for leaf_ops with the four-hook interface used by composite_product_op_NS (do_pre_screening, pre_screening, special_refinement_needed, post_screening).

This base is intentionally non-templated on the convolution-op type or the special-box helper, so that polymorphic dispatch is possible across all concrete leaf_ops the composite operator can take.

NOTE: the leaf_op concept used by multiply, hartree_product, apply (the *_leaf_op, op_leaf_op, hartree_leaf_op types in funcimpl.h) is a different concept — those are operator()-based callables with key/coeff signatures and are not unified here.

Constructor & Destructor Documentation

◆ ~LeafOpBase()

template<typename T, std::size_t NDIM>
virtual madness::LeafOpBase< T, NDIM >::~LeafOpBase ( )
virtualdefault

Member Function Documentation

◆ do_pre_screening()

template<typename T, std::size_t NDIM>
virtual bool madness::LeafOpBase< T, NDIM >::do_pre_screening ( ) const
inlinevirtual

◆ post_screening()

template<typename T, std::size_t NDIM>
virtual bool madness::LeafOpBase< T, NDIM >::post_screening ( const Key< NDIM > & ,
const GenTensor< T > &  ) const
inlinevirtual

true ⇒ the computed coefficients are sufficiently small/converged that the current key can be a leaf node.

Reimplemented in madness::Leaf_op< T, NDIM, opT, specialboxT >, madness::Leaf_op< T, NDIM, SeparatedConvolution< double, NDIM >, Specialbox_op< T, NDIM > >, and madness::Leaf_op_other< T, NDIM >.

◆ pre_screening()

template<typename T, std::size_t NDIM>
virtual bool madness::LeafOpBase< T, NDIM >::pre_screening ( const Key< NDIM > & ) const
inlinevirtual

◆ special_refinement_needed()

template<typename T, std::size_t NDIM>
virtual bool madness::LeafOpBase< T, NDIM >::special_refinement_needed ( const Key< NDIM > & ) const
inlinevirtual

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