MADNESS  version 0.9
Public Member Functions | List of all members
madness::CoeffTracker< T, NDIM > Class Template Reference

a class to track where relevant (parent) coeffs are More...

#include <funcimpl.h>

Public Member Functions

 CoeffTracker ()
 default ctor More...
 
 CoeffTracker (const implT *impl)
 the initial ctor making the root key More...
 
 CoeffTracker (const CoeffTracker &other, const datumT &datum)
 ctor with a pair<keyT,nodeT> More...
 
 CoeffTracker (const CoeffTracker &other)
 copy ctor More...
 
const implTget_impl () const
 const reference to impl More...
 
const coeffTcoeff () const
 const reference to the coeffs More...
 
const keyTkey () const
 const reference to the key More...
 
coeffT coeff (const keyT &key) const
 return the coefficients belonging to the passed-in key More...
 
const LeafStatus & is_leaf () const
 const reference to is_leaf flag More...
 
CoeffTracker make_child (const keyT &child) const
 make a child of this, ignoring the coeffs More...
 
Future< CoeffTrackeractivate () const
 find the coefficients More...
 
template<typename Archive >
void serialize (const Archive &ar)
 serialization More...
 

Detailed Description

template<typename T, size_t NDIM>
class madness::CoeffTracker< T, NDIM >

a class to track where relevant (parent) coeffs are

E.g. if a 6D function is composed of two 3D functions their coefficients must be tracked. We might need coeffs from a box that does not exist, and to avoid searching for parents we track which are their required respective boxes.

Usage: 1. make the child of a given CoeffTracker. If the parent CoeffTracker refers to a leaf node (flag is_leaf) the child will refer to the same node. Otherwise it will refer to the child node.

  1. retrieve its coefficients (possible communication/ returns a Future). Member variable key always refers to an existing node, so we can fetch it. Once we have the node we can determine if it has children which allows us to make a child (see 1. )

Constructor & Destructor Documentation

template<typename T, size_t NDIM>
madness::CoeffTracker< T, NDIM >::CoeffTracker ( )
inline
template<typename T, size_t NDIM>
madness::CoeffTracker< T, NDIM >::CoeffTracker ( const implT impl)
inline

the initial ctor making the root key

template<typename T, size_t NDIM>
madness::CoeffTracker< T, NDIM >::CoeffTracker ( const CoeffTracker< T, NDIM > &  other,
const datumT &  datum 
)
inlineexplicit

ctor with a pair<keyT,nodeT>

template<typename T, size_t NDIM>
madness::CoeffTracker< T, NDIM >::CoeffTracker ( const CoeffTracker< T, NDIM > &  other)
inline

copy ctor

Member Function Documentation

template<typename T, size_t NDIM>
Future<CoeffTracker> madness::CoeffTracker< T, NDIM >::activate ( ) const
inline
template<typename T, size_t NDIM>
const coeffT& madness::CoeffTracker< T, NDIM >::coeff ( ) const
inline
template<typename T, size_t NDIM>
coeffT madness::CoeffTracker< T, NDIM >::coeff ( const keyT key) const
inline

return the coefficients belonging to the passed-in key

if key equals tracked key just return the coeffs, otherwise make the child coefficients.

Parameters
[in]keyreturn coeffs corresponding to this key
Returns
coefficients belonging to key
template<typename T, size_t NDIM>
const implT* madness::CoeffTracker< T, NDIM >::get_impl ( ) const
inline
template<typename T, size_t NDIM>
const LeafStatus& madness::CoeffTracker< T, NDIM >::is_leaf ( ) const
inline
template<typename T, size_t NDIM>
const keyT& madness::CoeffTracker< T, NDIM >::key ( ) const
inline
template<typename T, size_t NDIM>
CoeffTracker madness::CoeffTracker< T, NDIM >::make_child ( const keyT child) const
inline
template<typename T, size_t NDIM>
template<typename Archive >
void madness::CoeffTracker< T, NDIM >::serialize ( const Archive &  ar)
inline

serialization


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