MADNESS 0.10.1
|
!!! Note that if Rnormf is zero then ALL of the tensors are empty More...
#include <convolution1d.h>
Public Member Functions | |
ConvolutionData1D (const Tensor< Q > &R, const Tensor< Q > &T) | |
ConvolutionData1D (const Tensor< Q > &R, const Tensor< Q > &T, const bool modified) | |
void | make_approx (const Tensor< Q > &R, Tensor< Q > &RU, Tensor< typename Tensor< Q >::scalar_type > &Rs, Tensor< Q > &RVT, double &norm) |
Public Attributes | |
double | N_diff |
double | N_F |
the norms according to Beylkin 2008, Eq. (21) ff | |
double | N_up |
double | NSnormf |
Tensor< Q > | R |
double | Rnorm |
double | Rnormf |
Tensor< typename Tensor< Q >::scalar_type > | Rs |
Tensor< Q > | RU |
Tensor< Q > | RVT |
Tensor< Q > | T |
if NS: R=ns, T=T part of ns; if modified NS: T=\uparrow r^(n-1) | |
double | Tnorm |
double | Tnormf |
Tensor< typename Tensor< Q >::scalar_type > | Ts |
hold relative errors, NOT the singular values.. | |
Tensor< Q > | TU |
Tensor< Q > | TVT |
SVD approximations to R and T. | |
!!! Note that if Rnormf is zero then ALL of the tensors are empty
actual data for 1 dimension and for 1 term and for 1 displacement for a convolution operator here we keep the transformation matrices
|
inline |
ctor for NS form make the operator matrices r^n and \uparrow r^(n-1)
[in] | R | operator matrix of the requested level; NS: unfilter(r^(n+1)); modified NS: r^n |
[in] | T | upsampled operator matrix from level n-1; NS: r^n; modified NS: filter( r^(n-1) ) |
References madness::copy(), madness::BaseTensor::dim(), e(), k, madness::ConvolutionData1D< Q >::make_approx(), madness::ConvolutionData1D< Q >::N_diff, madness::ConvolutionData1D< Q >::N_F, madness::ConvolutionData1D< Q >::N_up, madness::Tensor< T >::normf(), madness::ConvolutionData1D< Q >::NSnormf, madness::ConvolutionData1D< Q >::R, madness::ConvolutionData1D< Q >::Rnorm, madness::ConvolutionData1D< Q >::Rnormf, madness::ConvolutionData1D< Q >::Rs, madness::ConvolutionData1D< Q >::RU, madness::ConvolutionData1D< Q >::RVT, madness::ConvolutionData1D< Q >::T, madness::ConvolutionData1D< Q >::Tnorm, madness::ConvolutionData1D< Q >::Tnormf, madness::ConvolutionData1D< Q >::Ts, madness::ConvolutionData1D< Q >::TU, and madness::ConvolutionData1D< Q >::TVT.
|
inline |
ctor for modified NS form make the operator matrices r^n and \uparrow r^(n-1)
[in] | R | operator matrix of the requested level; NS: unfilter(r^(n+1)); modified NS: r^n |
[in] | T | upsampled operator matrix from level n-1; NS: r^n; modified NS: filter( r^(n-1) ) |
[in] | modified | use (un) modified NS form |
References e(), madness::ConvolutionData1D< Q >::make_approx(), madness::ConvolutionData1D< Q >::N_diff, madness::ConvolutionData1D< Q >::N_F, madness::ConvolutionData1D< Q >::N_up, madness::Tensor< T >::normf(), madness::ConvolutionData1D< Q >::R, madness::ConvolutionData1D< Q >::Rnorm, madness::ConvolutionData1D< Q >::Rnormf, madness::ConvolutionData1D< Q >::Rs, madness::ConvolutionData1D< Q >::RU, madness::ConvolutionData1D< Q >::RVT, madness::ConvolutionData1D< Q >::T, madness::ConvolutionData1D< Q >::Tnorm, madness::ConvolutionData1D< Q >::Tnormf, madness::ConvolutionData1D< Q >::Ts, madness::ConvolutionData1D< Q >::TU, and madness::ConvolutionData1D< Q >::TVT.
|
inline |
approximate the operator matrices using SVD, and abuse Rs to hold the error instead of the singular values (seriously, who named this??)
References madness::BaseTensor::dim(), norm(), madness::ConvolutionData1D< Q >::R, madness::ConvolutionData1D< Q >::Rs, madness::ConvolutionData1D< Q >::RU, madness::ConvolutionData1D< Q >::RVT, and madness::svd().
Referenced by madness::ConvolutionData1D< Q >::ConvolutionData1D(), and madness::ConvolutionData1D< Q >::ConvolutionData1D().
double madness::ConvolutionData1D< Q >::N_diff |
double madness::ConvolutionData1D< Q >::N_F |
the norms according to Beylkin 2008, Eq. (21) ff
Referenced by madness::ConvolutionData1D< Q >::ConvolutionData1D(), madness::ConvolutionData1D< Q >::ConvolutionData1D(), and madness::SeparatedConvolution< Q, NDIM >::munorm2_modified().
double madness::ConvolutionData1D< Q >::N_up |
double madness::ConvolutionData1D< Q >::NSnormf |
Referenced by madness::ConvolutionData1D< Q >::ConvolutionData1D().
Tensor<Q> madness::ConvolutionData1D< Q >::R |
double madness::ConvolutionData1D< Q >::Rnorm |
double madness::ConvolutionData1D< Q >::Rnormf |
Tensor<Q> madness::ConvolutionData1D< Q >::RU |
Tensor<Q> madness::ConvolutionData1D< Q >::RVT |
Tensor<Q> madness::ConvolutionData1D< Q >::T |
if NS: R=ns, T=T part of ns; if modified NS: T=\uparrow r^(n-1)
Referenced by madness::ConvolutionData1D< Q >::ConvolutionData1D(), and madness::ConvolutionData1D< Q >::ConvolutionData1D().
double madness::ConvolutionData1D< Q >::Tnorm |
double madness::ConvolutionData1D< Q >::Tnormf |
hold relative errors, NOT the singular values..
Referenced by madness::ConvolutionData1D< Q >::ConvolutionData1D(), and madness::ConvolutionData1D< Q >::ConvolutionData1D().
Tensor<Q> madness::ConvolutionData1D< Q >::TU |
Tensor<Q> madness::ConvolutionData1D< Q >::TVT |
SVD approximations to R and T.
Referenced by madness::ConvolutionData1D< Q >::ConvolutionData1D(), and madness::ConvolutionData1D< Q >::ConvolutionData1D().