5#ifndef MADNESS_OPERATORINFO_H
6#define MADNESS_OPERATORINFO_H
26template<std::
size_t N=1>
60 OperatorInfo(
double mu,
double lo,
double thresh,
OpType type, std::optional<bool>
truncate = {}, std::vector<KernelRange>
range = std::vector<KernelRange>(6)) :
mu(
mu),
lo(
lo),
thresh(
thresh),
type(
type),
truncate_lowexp_gaussians(
truncate),
range(
std::move(
range)) { }
61 template <std::
size_t NDIM>
62 OperatorInfo(
double mu,
double lo,
double thresh,
OpType type, std::optional<bool>
truncate,
const std::array<KernelRange, NDIM>&
range) :
mu(
mu),
lo(
lo),
thresh(
thresh),
type(
type),
truncate_lowexp_gaussians(
truncate),
range(
range.begin(),
range.end()) { }
68 std::vector<KernelRange>
range = std::vector<KernelRange>(6);
72 template <std::
size_t NDIM>
74 std::array<KernelRange, NDIM> result;
#define MADNESS_ASSERT(condition)
Assert a condition that should be free of side-effects since in release builds this might be a no-op.
Definition madness_exception.h:134
Namespace for all elements and tools of MADNESS.
Definition DFParameters.h:10
std::ostream & operator<<(std::ostream &os, const particle< PDIM > &p)
Definition lowrankfunction.h:397
void truncate(World &world, response_space &v, double tol, bool fence)
Definition basic_operators.cc:30
OpType
operator types
Definition operatorinfo.h:11
@ OT_FG12
1-exp(-r)
Definition operatorinfo.h:18
@ OT_SLATER
1/r
Definition operatorinfo.h:15
@ OT_GAUSS
exp(-r)
Definition operatorinfo.h:16
@ OT_BSH
(1-exp(-r))^2/r = 1/r + exp(-2r)/r - 2 exp(-r)/r
Definition operatorinfo.h:21
@ OT_SIZE
exp(-r)/r
Definition operatorinfo.h:22
@ OT_ONE
Definition operatorinfo.h:13
@ OT_F12
exp(-r2)
Definition operatorinfo.h:17
@ OT_F212
(1-exp(-r))/r
Definition operatorinfo.h:19
@ OT_UNDEFINED
Definition operatorinfo.h:12
@ OT_G12
indicates the identity
Definition operatorinfo.h:14
@ OT_F2G12
(1-exp(-r))^2
Definition operatorinfo.h:20
std::string type(const PairType &n)
Definition PNOParameters.h:18
std::string name(const FuncType &type, const int ex=-1)
Definition ccpairfunction.h:28
Definition operatorinfo.h:58
double hi
Definition operatorinfo.h:67
OperatorInfo(double mu, double lo, double thresh, OpType type, std::optional< bool > truncate={}, std::vector< KernelRange > range=std::vector< KernelRange >(6))
Definition operatorinfo.h:60
double thresh
Definition operatorinfo.h:65
bool debug
Definition operatorinfo.h:69
OpType type
introspection
Definition operatorinfo.h:66
std::array< KernelRange, NDIM > range_as_array() const
Definition operatorinfo.h:73
double mu
some introspection
Definition operatorinfo.h:63
OperatorInfo(double mu, double lo, double thresh, OpType type, std::optional< bool > truncate, const std::array< KernelRange, NDIM > &range)
Definition operatorinfo.h:62
std::vector< KernelRange > range
Definition operatorinfo.h:68
std::optional< bool > truncate_lowexp_gaussians
Definition operatorinfo.h:70
double lo
Definition operatorinfo.h:64
constexpr std::size_t NDIM
Definition testgconv.cc:54