29 #ifndef CDPL_SHAPE_FASTGAUSSIANSHAPEOVERLAPFUNCTION_HPP
30 #define CDPL_SHAPE_FASTGAUSSIANSHAPEOVERLAPFUNCTION_HPP
44 class GaussianProductList;
50 static constexpr
double DEF_RADIUS_SCALING_FACTOR = 1.4;
52 typedef std::shared_ptr<FastGaussianShapeOverlapFunction>
SharedPointer;
104 bool checkShapeFuncsNotNull()
const;
106 double calcOverlap(
const GaussianProductList* ref_prod_list,
const GaussianProductList* ovl_prod_list,
108 double calcOverlapExact(
const GaussianProductList* ref_prod_list,
const GaussianProductList* ovl_prod_list,
110 double calcOverlapFastExp(
const GaussianProductList* ref_prod_list,
const GaussianProductList* ovl_prod_list,
112 double calcOverlapProxCheck(
const GaussianProductList* ref_prod_list,
const GaussianProductList* ovl_prod_list,
114 double calcOverlapFastExpProxCheck(
const GaussianProductList* ref_prod_list,
const GaussianProductList* ovl_prod_list,
117 double calcOverlap(
const GaussianProductList* ref_prod_list,
const GaussianProductList* ovl_prod_list,
119 double calcOverlapExact(
const GaussianProductList* ref_prod_list,
const GaussianProductList* ovl_prod_list,
121 double calcOverlapFastExp(
const GaussianProductList* ref_prod_list,
const GaussianProductList* ovl_prod_list,
123 double calcOverlapProxCheck(
const GaussianProductList* ref_prod_list,
const GaussianProductList* ovl_prod_list,
125 double calcOverlapFastExpProxCheck(
const GaussianProductList* ref_prod_list,
const GaussianProductList* ovl_prod_list,
128 double calcOverlapGradient(
const GaussianProductList* ref_prod_list,
const GaussianProductList* ovl_prod_list,
130 double calcOverlapGradientExact(
const GaussianProductList* ref_prod_list,
const GaussianProductList* ovl_prod_list,
132 double calcOverlapGradientFastExp(
const GaussianProductList* ref_prod_list,
const GaussianProductList* ovl_prod_list,
134 double calcOverlapGradientProxCheck(
const GaussianProductList* ref_prod_list,
const GaussianProductList* ovl_prod_list,
136 double calcOverlapGradientFastExpProxCheck(
const GaussianProductList* ref_prod_list,
const GaussianProductList* ovl_prod_list,
145 double radScalingFact;
Definition of the class CDPL::Shape::GaussianShapeOverlapFunction.
Definition of the preprocessor macro CDPL_SHAPE_API.
#define CDPL_SHAPE_API
Tells the compiler/linker which classes, functions and variables are part of the library API.
Definition: FastGaussianShapeOverlapFunction.hpp:47
void setRadiusScalingFactor(double factor)
void proximityOptimization(bool enable)
const ColorFilterFunction & getColorFilterFunction() const
void setShapeFunction(const GaussianShapeFunction &func, bool is_ref)
FastGaussianShapeOverlapFunction & operator=(const FastGaussianShapeOverlapFunction &func)
double calcOverlap(const Math::Vector3DArray &coords) const
double calcOverlap() const
void fastExpFunction(bool enable)
~FastGaussianShapeOverlapFunction()
bool proximityOptimization() const
void setColorFilterFunction(const ColorFilterFunction &func)
const ColorMatchFunction & getColorMatchFunction() const
const GaussianShapeFunction * getShapeFunction(bool ref) const
double calcOverlapGradient(const Math::Vector3DArray &coords, Math::Vector3DArray &grad) const
FastGaussianShapeOverlapFunction(const GaussianShapeFunction &ref_shape_func, const GaussianShapeFunction &ovl_shape_func)
double calcSelfOverlap(bool ref) const
void setColorMatchFunction(const ColorMatchFunction &func)
double getRadiusScalingFactor() const
bool fastExpFunction() const
double calcColorOverlap() const
double calcColorOverlap(const Math::Vector3DArray &coords) const
std::shared_ptr< FastGaussianShapeOverlapFunction > SharedPointer
Definition: FastGaussianShapeOverlapFunction.hpp:52
FastGaussianShapeOverlapFunction(const FastGaussianShapeOverlapFunction &func)
double calcColorSelfOverlap(bool ref) const
FastGaussianShapeOverlapFunction()
Definition: GaussianShapeFunction.hpp:53
Definition: GaussianShapeOverlapFunction.hpp:49
std::function< bool(std::size_t)> ColorFilterFunction
Definition: GaussianShapeOverlapFunction.hpp:54
std::function< bool(std::size_t, std::size_t)> ColorMatchFunction
Definition: GaussianShapeOverlapFunction.hpp:55
VectorArray< Vector3D > Vector3DArray
An array of Math::Vector3D objects.
Definition: VectorArray.hpp:84
The namespace of the Chemical Data Processing Library.