MADNESS  version 0.9
Public Types | Public Member Functions | Public Attributes | List of all members
madness::Convolution1D< Q > Class Template Referenceabstract

Provides the common functionality/interface of all 1D convolutions. More...

#include <convolution1d.h>

Inheritance diagram for madness::Convolution1D< Q >:
Inheritance graph
[legend]
Collaboration diagram for madness::Convolution1D< Q >:
Collaboration graph
[legend]

Public Types

typedef Q opT
 The apply function uses this to infer resultT=opT*inputT. More...
 

Public Member Functions

virtual ~Convolution1D ()
 
 Convolution1D (int k, int npt, int maxR, double arg=0.0)
 
virtual Tensor< Q > rnlp (Level n, Translation lx) const =0
 Compute the projection of the operator onto the double order polynomials. More...
 
virtual bool issmall (Level n, Translation lx) const =0
 Returns true if the block of rnlp is expected to be small. More...
 
bool get_issmall (Level n, Translation lx) const
 Returns true if the block of rnlp is expected to be small including periodicity. More...
 
virtual Level natural_level () const
 Returns the level for projection. More...
 
const Tensor< Q > & rnlij (Level n, Translation lx, bool do_transpose=false) const
 Computes the transition matrix elements for the convolution for n,l. More...
 
const ConvolutionData1D< Q > * mod_nonstandard (const Key< 2 > &op_key) const
 Returns a pointer to the cached modified nonstandard form of the operator. More...
 
const ConvolutionData1D< Q > * nonstandard (Level n, Translation lx) const
 Returns a pointer to the cached nonstandard form of the operator. More...
 
phase (double R) const
 
phase (double_complex R) const
 
const Tensor< Q > & get_rnlp (Level n, Translation lx) const
 

Public Attributes

int k
 Wavelet order. More...
 
int npt
 Number of quadrature points (is this used?) More...
 
int maxR
 Number of lattice translations for sum. More...
 
Tensor< double > quad_x
 
Tensor< double > quad_w
 
Tensor< double > c
 
Tensor< double > hgT
 
Tensor< double > hg
 
Tensor< double > hgT2k
 
double arg
 
SimpleCache< Tensor< Q >, 1 > rnlp_cache
 
SimpleCache< Tensor< Q >, 1 > rnlij_cache
 
SimpleCache< ConvolutionData1D
< Q >, 1 > 
ns_cache
 
SimpleCache< ConvolutionData1D
< Q >, 2 > 
mod_ns_cache
 

Detailed Description

template<typename Q>
class madness::Convolution1D< Q >

Provides the common functionality/interface of all 1D convolutions.

interface for 1 term and for 1 dimension; the actual data are kept in ConvolutionData1D Derived classes must implement rnlp, issmall, natural_level

Member Typedef Documentation

template<typename Q>
typedef Q madness::Convolution1D< Q >::opT

The apply function uses this to infer resultT=opT*inputT.

Constructor & Destructor Documentation

template<typename Q>
virtual madness::Convolution1D< Q >::~Convolution1D ( )
inlinevirtual
template<typename Q>
madness::Convolution1D< Q >::Convolution1D ( int  k,
int  npt,
int  maxR,
double  arg = 0.0 
)
inline

Member Function Documentation

template<typename Q>
bool madness::Convolution1D< Q >::get_issmall ( Level  n,
Translation  lx 
) const
inline

Returns true if the block of rnlp is expected to be small including periodicity.

References madness::Convolution1D< Q >::issmall(), madness::Convolution1D< Q >::maxR, and R.

Referenced by madness::Convolution1D< Q >::get_rnlp(), and madness::Convolution1D< Q >::nonstandard().

template<typename Q>
const Tensor<Q>& madness::Convolution1D< Q >::get_rnlp ( Level  n,
Translation  lx 
) const
inline
template<typename Q>
virtual bool madness::Convolution1D< Q >::issmall ( Level  n,
Translation  lx 
) const
pure virtual

Returns true if the block of rnlp is expected to be small.

Implemented in madness::GaussianConvolution1D< Q >, and madness::GenericConvolution1D< Q, opT >.

Referenced by madness::Convolution1D< Q >::get_issmall().

template<typename Q>
const ConvolutionData1D<Q>* madness::Convolution1D< Q >::mod_nonstandard ( const Key< 2 > &  op_key) const
inline

Returns a pointer to the cached modified nonstandard form of the operator.

Parameters
[in]op_keyholds the scale and the source and target translations
Returns
a pointer to the cached modified nonstandard form of the operator

References madness::copy(), madness::fast_transpose(), madness::SimpleCache< Q, NDIM >::getptr(), madness::Convolution1D< Q >::k, madness::Key< NDIM >::level(), PROFILE_BLOCK, R, madness::Convolution1D< Q >::rnlij(), madness::SimpleCache< Q, NDIM >::set(), std::tr1::T(), madness::transform(), madness::Key< NDIM >::translation(), and madness::vec().

template<typename Q>
virtual Level madness::Convolution1D< Q >::natural_level ( ) const
inlinevirtual

Returns the level for projection.

Reimplemented in madness::GaussianConvolution1D< Q >, and madness::GenericConvolution1D< Q, opT >.

Referenced by madness::Convolution1D< Q >::get_rnlp().

template<typename Q>
const ConvolutionData1D<Q>* madness::Convolution1D< Q >::nonstandard ( Level  n,
Translation  lx 
) const
inline
template<typename Q>
Q madness::Convolution1D< Q >::phase ( double  R) const
inline
template<typename Q>
Q madness::Convolution1D< Q >::phase ( double_complex  R) const
inline

References mpfr::exp().

template<typename Q>
const Tensor<Q>& madness::Convolution1D< Q >::rnlij ( Level  n,
Translation  lx,
bool  do_transpose = false 
) const
inline

Computes the transition matrix elements for the convolution for n,l.

Returns the tensor

r(i,j) = int(K(x-y) phi[n0](x) phi[nl](y), x=0..1, y=0..1)

This is computed from the matrix elements over the correlation function which in turn are computed from the matrix elements over the double order legendre polynomials.

References madness::Convolution1D< Q >::get_rnlp(), madness::SimpleCache< Q, NDIM >::getptr(), madness::inner(), madness::Convolution1D< Q >::k, PROFILE_MEMBER_FUNC, R, madness::SimpleCache< Q, NDIM >::set(), and madness::transpose().

Referenced by madness::Convolution1D< Q >::mod_nonstandard(), and madness::Convolution1D< Q >::nonstandard().

template<typename Q>
virtual Tensor<Q> madness::Convolution1D< Q >::rnlp ( Level  n,
Translation  lx 
) const
pure virtual

Compute the projection of the operator onto the double order polynomials.

Implemented in madness::GaussianConvolution1D< Q >, and madness::GenericConvolution1D< Q, opT >.

Referenced by madness::Convolution1D< Q >::get_rnlp().

Member Data Documentation

template<typename Q>
double madness::Convolution1D< Q >::arg
template<typename Q>
Tensor<double> madness::Convolution1D< Q >::c
template<typename Q>
Tensor<double> madness::Convolution1D< Q >::hg
template<typename Q>
Tensor<double> madness::Convolution1D< Q >::hgT
template<typename Q>
Tensor<double> madness::Convolution1D< Q >::hgT2k
template<typename Q>
int madness::Convolution1D< Q >::k
template<typename Q>
int madness::Convolution1D< Q >::maxR

Number of lattice translations for sum.

Referenced by madness::Convolution1D< Q >::get_issmall(), and madness::Convolution1D< Q >::get_rnlp().

template<typename Q>
SimpleCache<ConvolutionData1D<Q>, 2> madness::Convolution1D< Q >::mod_ns_cache
mutable
template<typename Q>
int madness::Convolution1D< Q >::npt

Number of quadrature points (is this used?)

Referenced by madness::GenericConvolution1D< Q, opT >::rnlp(), and madness::GaussianConvolution1D< Q >::rnlp().

template<typename Q>
SimpleCache<ConvolutionData1D<Q>, 1> madness::Convolution1D< Q >::ns_cache
mutable
template<typename Q>
Tensor<double> madness::Convolution1D< Q >::quad_w
template<typename Q>
Tensor<double> madness::Convolution1D< Q >::quad_x
template<typename Q>
SimpleCache<Tensor<Q>, 1> madness::Convolution1D< Q >::rnlij_cache
mutable
template<typename Q>
SimpleCache<Tensor<Q>, 1> madness::Convolution1D< Q >::rnlp_cache
mutable

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