7 #ifndef IMPCORE_HARMONIC_LOWER_BOUND_H
8 #define IMPCORE_HARMONIC_LOWER_BOUND_H
10 #include <IMP/core/core_config.h>
12 #include <cereal/access.hpp>
13 #include <cereal/types/base_class.hpp>
15 IMPCORE_BEGIN_NAMESPACE
23 friend class cereal::access;
24 template<
class Archive>
void serialize(Archive &ar) {
25 ar(cereal::base_class<Harmonic>(
this));
32 virtual double evaluate(
double feature)
const override {
39 : Harmonic::evaluate_with_derivative(feature);
Lower bound harmonic function (non-zero when feature < mean)
double get_mean(const cv::Mat &mat, const cvIntMat &mask)
virtual DerivativePair evaluate_with_derivative(double feature) const override
Calculate score and derivative with respect to the given feature.
#define IMP_OBJECT_METHODS(Name)
Define the basic things needed by any Object.
#define IMP_OBJECT_SERIALIZE_DECL(Name)
Declare methods needed for serialization of Object pointers.
virtual double evaluate(double feature) const override
Calculate score with respect to the given feature.
std::pair< double, double > DerivativePair
A pair representing a function value with its first derivative.
double Float
Basic floating-point value (could be float, double...)
HarmonicLowerBound(Float mean, Float k)
Harmonic function (symmetric about the mean)