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().