|
MADNESS 0.10.1
|
a class to track where relevant (parent) coeffs are More...
#include <funcimpl.h>
Public Member Functions | |
| CoeffTracker () | |
| default ctor | |
| CoeffTracker (const CoeffTracker &other) | |
| copy ctor | |
| CoeffTracker (const CoeffTracker &other, const datumT &datum) | |
| ctor with a pair<keyT,nodeT> | |
| CoeffTracker (const implT *impl) | |
| the initial ctor making the root key | |
| Future< CoeffTracker > | activate () const |
| find the coefficients | |
| const coeffT & | coeff () const |
| const reference to the coeffs | |
| coeffT | coeff (const keyT &key) const |
| return the coefficients belonging to the passed-in key | |
| double | dnorm (const keyT &key) const |
| return the s and dnorm belonging to the passed-in key | |
| const implT * | get_impl () const |
| const reference to impl | |
| const LeafStatus & | is_leaf () const |
| const reference to is_leaf flag | |
| const keyT & | key () const |
| const reference to the key | |
| CoeffTracker | make_child (const keyT &child) const |
| make a child of this, ignoring the coeffs | |
| CoeffTracker & | operator= (const CoeffTracker &other)=default |
| template<typename Archive> | |
| void | serialize (const Archive &ar) |
| serialization | |
Private Types | |
| typedef GenTensor< T > | coeffT |
| typedef std::pair< Key< NDIM >, ShallowNode< T, NDIM > > | datumT |
| typedef FunctionImpl< T, NDIM > | implT |
| typedef Key< NDIM > | keyT |
| enum | LeafStatus { no , yes , unknown } |
Private Member Functions | |
| CoeffTracker | forward_ctor (const CoeffTracker &other, const datumT &datum) const |
| taskq-compatible forwarding to the ctor | |
Private Attributes | |
| coeffT | coeff_ |
| the coefficients belonging to key | |
| double | dnorm_ =-1.0 |
| norm of d coefficients corresponding to key | |
| const implT * | impl |
| the funcimpl that has the coeffs | |
| LeafStatus | is_leaf_ |
| flag if key is a leaf node | |
| keyT | key_ |
| the current key, which must exists in impl | |
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.
|
private |
|
private |
|
private |
|
private |
|
private |
|
inline |
default ctor
Referenced by madness::CoeffTracker< T, LDIM >::activate(), madness::CoeffTracker< T, LDIM >::forward_ctor(), and madness::CoeffTracker< T, LDIM >::make_child().
|
inline |
the initial ctor making the root key
|
inlineexplicit |
ctor with a pair<keyT,nodeT>
|
inline |
copy ctor
|
inline |
find the coefficients
this involves communication to a remote node
|
inline |
const reference to the coeffs
Referenced by madness::composite_product_op_NS< T, NDIM, opT, LDIM >::make_term_coeffs(), and madness::composite_product_op_NS< T, NDIM, opT, LDIM >::make_term_ket().
|
inline |
return the coefficients belonging to the passed-in key
if key equals tracked key just return the coeffs, otherwise make the child coefficients.
| [in] | key | return coeffs corresponding to this key |
|
inline |
return the s and dnorm belonging to the passed-in key
|
inlineprivate |
taskq-compatible forwarding to the ctor
Referenced by madness::CoeffTracker< T, LDIM >::activate().
|
inline |
const reference to impl
Referenced by madness::operator<<().
|
inline |
const reference to is_leaf flag
Referenced by madness::operator<<().
|
inline |
const reference to the key
Referenced by madness::CoeffTracker< T, LDIM >::activate(), madness::CoeffTracker< T, LDIM >::make_child(), and madness::operator<<().
|
inline |
make a child of this, ignoring the coeffs
Referenced by madness::composite_product_op_NS< T, NDIM, opT, LDIM >::make_child().
|
default |
|
inline |
serialization
|
private |
the coefficients belonging to key
|
private |
norm of d coefficients corresponding to key
|
private |
the funcimpl that has the coeffs
Referenced by madness::CoeffTracker< T, LDIM >::make_child().
|
private |
flag if key is a leaf node
Referenced by madness::CoeffTracker< T, LDIM >::make_child().
|
private |
the current key, which must exists in impl
Referenced by madness::CoeffTracker< T, LDIM >::make_child().