9 #ifndef IMPEXAMPLE_EXAMPLE_UNARY_FUNCTION_H
10 #define IMPEXAMPLE_EXAMPLE_UNARY_FUNCTION_H
12 #include <IMP/example/example_config.h>
16 #include <cereal/access.hpp>
17 #include <cereal/types/base_class.hpp>
18 #include <cereal/types/polymorphic.hpp>
20 IMPEXAMPLE_BEGIN_NAMESPACE
45 virtual double evaluate(
double feature)
const override {
46 return .5 * k_ * algebra::get_squared(feature - center_);
51 friend class cereal::access;
52 template<
class Archive>
void serialize(Archive &ar) {
53 ar(cereal::base_class<UnaryFunction>(
this), center_, k_);
58 IMPEXAMPLE_END_NAMESPACE
ExampleUnaryFunction(Float center, Float k)
virtual DerivativePair evaluate_with_derivative(double feature) const override
Calculate score and derivative with respect to the given feature.
virtual double evaluate(double feature) const override
Calculate score with respect to the given feature.
virtual double evaluate(double feature) const
Calculate score with respect to the given feature.
#define IMP_OBJECT_METHODS(Name)
Define the basic things needed by any Object.
Single variable function.
Functions to deal with very common math operations.
#define IMP_OBJECT_SERIALIZE_DECL(Name)
Declare methods needed for serialization of Object pointers.
For backwards compatibility.
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...)
#define IMP_USAGE_CHECK(expr, message)
A runtime test for incorrect usage of a class or method.
Abstract single variable functor class for score functions.