|
MADNESS 0.10.1
|
#include <kernelrange.h>
Classes | |
| struct | Data |
| struct | Restrictor |
| restrictor function More... | |
Public Types | |
| enum | Type { Hard , SoftErf } |
| types of range restrictor functions More... | |
Public Member Functions | |
| KernelRange ()=default | |
| KernelRange (unsigned int N) | |
| KernelRange (unsigned int N, double sigma) | |
| bool | finite () const |
| bool | finite_hard () const |
| bool | finite_soft () const |
| hashT | hash () const |
| int | iextent_x2 (double epsilon=extent_default_epsilon) const |
| bool | infinite () const |
| unsigned int | N () const |
| operator bool () const | |
| double | sigma () const |
| Type | type () const |
| double | value (double r) const |
Static Public Attributes | |
| static constexpr double | extent_default_epsilon = std::numeric_limits<double>::epsilon() |
Private Member Functions | |
| const Restrictor & | restrictor () const |
Private Attributes | |
| std::optional< Data > | data |
Friends | |
| bool | operator== (const KernelRange &r1, const KernelRange &r2) |
To limit the range of kernel K(x-y) it is multiplied (in user coordinates) by a restrictor function 

|
default |
constructs a null (i.e., infinite) kernel range
this->infinite()==true
|
inline |
constructs a finite soft (sigma > 0) or hard (sigma==0) kernel range
| sigma | regularization parameter (lengthscale in simulation [0,1] coordinate units) controls the softness of the range restrictor |
sigma>=0 this->soft()==true References Hard, MADNESS_ASSERT, N(), sigma(), and SoftErf.
|
inline |
|
inline |
Referenced by finite_hard(), finite_soft(), infinite(), operator bool(), madness::Convolution1D< Q >::range_restricted(), and madness::GaussianConvolution1D< Q >::rnlp().
|
inline |
References finite(), Hard, and type().
Referenced by madness::GaussianConvolution1D< Q >::rnlp().
|
inline |
References finite(), Hard, and type().
Referenced by madness::GaussianConvolution1D< Q >::rnlp().
|
inline |
References madness::hash_combine(), madness::hash_value(), infinite(), N(), and restrictor().
|
inline |
|x-y| (rounded up, in units of 1/2) for which r(N/2 - |x-y|) is greater than epsilon References epsilon, infinite(), and MADNESS_ASSERT.
Referenced by madness::GaussianConvolution1D< Q >::rnlp(), and madness::Convolution1D< Q >::rnlp_is_zero().
|
inline |
References finite().
Referenced by hash(), iextent_x2(), and value().
|
inline |
Referenced by KernelRange(), KernelRange(), hash(), madness::GaussianConvolution1D< Q >::rnlp(), and value().
|
inlineexplicit |
References finite().
|
inlineprivate |
|
inline |
References restrictor(), and madness::KernelRange::Restrictor::sigma().
Referenced by KernelRange(), and madness::GaussianConvolution1D< Q >::rnlp().
|
inline |
References restrictor(), and madness::KernelRange::Restrictor::type().
Referenced by finite_hard(), and finite_soft().
|
inline |
References std::abs(), infinite(), N(), restrictor(), and madness::KernelRange::Restrictor::value().
Referenced by madness::KernelRange::Data::compute_iextent_x2(), and madness::GaussianConvolution1D< Q >::rnlp().
|
friend |
r1 and r2 are equal
|
private |
|
staticconstexpr |
Referenced by madness::KernelRange::Data::iextent_x2().