MADNESS  0.10.1
Public Types | Public Member Functions | Public Attributes | List of all members
madness::FunctionImpl< T, NDIM >::project_out_op< LDIM > Struct Template Reference

project the low-dim function g on the hi-dim function f: result(x) = <f(x,y) | g(y)> More...

#include <funcimpl.h>

Collaboration diagram for madness::FunctionImpl< T, NDIM >::project_out_op< LDIM >:
Collaboration graph
[legend]

Public Types

typedef std::pair< bool, coeffTargT
 
typedef CoeffTracker< T, LDIM > ctL
 
typedef FunctionImpl< T, NDIM-LDIM > implL1
 
typedef project_out_op< LDIM > this_type
 

Public Member Functions

 project_out_op ()
 
 project_out_op (const implT *fimpl, implL1 *result, const ctL &iag, const int dim)
 
 project_out_op (const project_out_op &other)
 
Future< this_typeactivate () const
 retrieve the coefficients (parent coeffs might be remote) More...
 
this_type forward_ctor (const implT *fimpl1, implL1 *result1, const ctL &iag1, const int dim1)
 taskq-compatible ctor More...
 
this_type make_child (const keyT &child) const
 
Future< argToperator() (const Key< NDIM > &key) const
 do the actual contraction More...
 
bool randomize () const
 
template<typename Archive >
void serialize (const Archive &ar)
 

Public Attributes

int dim
 0: project 0..LDIM-1, 1: project LDIM..NDIM-1 More...
 
const implTfimpl
 the hi dim function f More...
 
ctL iag
 the low dim function g More...
 
implL1result
 the low dim result function More...
 

Detailed Description

template<typename T, std::size_t NDIM>
template<size_t LDIM>
struct madness::FunctionImpl< T, NDIM >::project_out_op< LDIM >

project the low-dim function g on the hi-dim function f: result(x) = <f(x,y) | g(y)>

Member Typedef Documentation

◆ argT

template<typename T , std::size_t NDIM>
template<size_t LDIM>
typedef std::pair<bool,coeffT> madness::FunctionImpl< T, NDIM >::project_out_op< LDIM >::argT

◆ ctL

template<typename T , std::size_t NDIM>
template<size_t LDIM>
typedef CoeffTracker<T,LDIM> madness::FunctionImpl< T, NDIM >::project_out_op< LDIM >::ctL

◆ implL1

template<typename T , std::size_t NDIM>
template<size_t LDIM>
typedef FunctionImpl<T,NDIM-LDIM> madness::FunctionImpl< T, NDIM >::project_out_op< LDIM >::implL1

◆ this_type

template<typename T , std::size_t NDIM>
template<size_t LDIM>
typedef project_out_op<LDIM> madness::FunctionImpl< T, NDIM >::project_out_op< LDIM >::this_type

Constructor & Destructor Documentation

◆ project_out_op() [1/3]

template<typename T , std::size_t NDIM>
template<size_t LDIM>
madness::FunctionImpl< T, NDIM >::project_out_op< LDIM >::project_out_op ( )
inline

◆ project_out_op() [2/3]

template<typename T , std::size_t NDIM>
template<size_t LDIM>
madness::FunctionImpl< T, NDIM >::project_out_op< LDIM >::project_out_op ( const implT fimpl,
implL1 result,
const ctL iag,
const int  dim 
)
inline

◆ project_out_op() [3/3]

template<typename T , std::size_t NDIM>
template<size_t LDIM>
madness::FunctionImpl< T, NDIM >::project_out_op< LDIM >::project_out_op ( const project_out_op< LDIM > &  other)
inline

Member Function Documentation

◆ activate()

template<typename T , std::size_t NDIM>
template<size_t LDIM>
Future<this_type> madness::FunctionImpl< T, NDIM >::project_out_op< LDIM >::activate ( ) const
inline

◆ forward_ctor()

template<typename T , std::size_t NDIM>
template<size_t LDIM>
this_type madness::FunctionImpl< T, NDIM >::project_out_op< LDIM >::forward_ctor ( const implT fimpl1,
implL1 result1,
const ctL iag1,
const int  dim1 
)
inline

◆ make_child()

template<typename T , std::size_t NDIM>
template<size_t LDIM>
this_type madness::FunctionImpl< T, NDIM >::project_out_op< LDIM >::make_child ( const keyT child) const
inline

◆ operator()()

template<typename T , std::size_t NDIM>
template<size_t LDIM>
Future<argT> madness::FunctionImpl< T, NDIM >::project_out_op< LDIM >::operator() ( const Key< NDIM > &  key) const
inline

do the actual contraction

References madness::_(), madness::Key< NDIM >::break_apart(), madness::FunctionImpl< T, NDIM >::cdata, madness::FunctionNode< T, NDIM >::coeff(), madness::CoeffTracker< T, NDIM >::coeff(), madness::FunctionImpl< T, NDIM >::coeffs, madness::copy(), madness::FunctionImpl< T, NDIM >::project_out_op< LDIM >::dim, madness::GenTensor< T >::dim(), madness::Tensor< T >::emul(), madness::FunctionImpl< T, NDIM >::project_out_op< LDIM >::fimpl, madness::WorldContainer< keyT, valueT, hashfunT >::find(), madness::Tensor< T >::flat(), madness::GenTensor< T >::full_tensor(), madness::FunctionImpl< T, NDIM >::get_coeffs(), madness::CoeffTracker< T, NDIM >::get_impl(), madness::GenTensor< T >::get_svdtensor(), madness::GenTensor< T >::has_no_data(), madness::TaskAttributes::hipri(), madness::FunctionImpl< T, NDIM >::project_out_op< LDIM >::iag, madness::inner(), madness::GenTensor< T >::is_full_tensor(), madness::FunctionNode< T, NDIM >::is_leaf(), madness::GenTensor< T >::is_svd_tensor(), madness::FunctionImpl< T, NDIM >::k, madness::CoeffTracker< T, NDIM >::key(), madness::FunctionImpl< T, NDIM >::MADNESS_ASSERT(), madness::FunctionImpl< T, NDIM >::MADNESS_CHECK(), MADNESS_EXCEPTION, madness::FunctionImpl< T, NDIM >::parent_to_child(), pow(), madness::WorldContainer< keyT, valueT, hashfunT >::probe(), madness::GenTensor< T >::rank(), madness::Tensor< T >::reshape(), madness::FunctionImpl< T, NDIM >::project_out_op< LDIM >::result, madness::WorldContainer< keyT, valueT, hashfunT >::task(), and madness::weights.

◆ randomize()

template<typename T , std::size_t NDIM>
template<size_t LDIM>
bool madness::FunctionImpl< T, NDIM >::project_out_op< LDIM >::randomize ( ) const
inline

◆ serialize()

template<typename T , std::size_t NDIM>
template<size_t LDIM>
template<typename Archive >
void madness::FunctionImpl< T, NDIM >::project_out_op< LDIM >::serialize ( const Archive &  ar)
inline

Member Data Documentation

◆ dim

template<typename T , std::size_t NDIM>
template<size_t LDIM>
int madness::FunctionImpl< T, NDIM >::project_out_op< LDIM >::dim

◆ fimpl

template<typename T , std::size_t NDIM>
template<size_t LDIM>
const implT* madness::FunctionImpl< T, NDIM >::project_out_op< LDIM >::fimpl

◆ iag

template<typename T , std::size_t NDIM>
template<size_t LDIM>
ctL madness::FunctionImpl< T, NDIM >::project_out_op< LDIM >::iag

◆ result

template<typename T , std::size_t NDIM>
template<size_t LDIM>
implL1* madness::FunctionImpl< T, NDIM >::project_out_op< LDIM >::result
mutable

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