IMP  2.2.0
The Integrative Modeling Platform
ClosedCubicSpline.h
Go to the documentation of this file.
1 /**
2  * \file IMP/core/ClosedCubicSpline.h \brief Closed cubic spline function.
3  *
4  * Copyright 2007-2014 IMP Inventors. All rights reserved.
5  */
6 
7 #ifndef IMPCORE_CLOSED_CUBIC_SPLINE_H
8 #define IMPCORE_CLOSED_CUBIC_SPLINE_H
9 
10 #include <IMP/core/core_config.h>
11 #include <IMP/UnaryFunction.h>
12 
13 IMPCORE_BEGIN_NAMESPACE
14 
15 //! Closed cubic spline function.
16 /** This function is a cubic spline interpolating a set of values.
17  The function is periodic, so the score will also have the same value at
18  minrange + spacing * values.size(). See OpenCubicSpline for a
19  non-periodic spline.
20  \see OpenCubicSpline
21  */
22 class IMPCOREEXPORT ClosedCubicSpline : public UnaryFunction {
23  public:
24  /** \param[in] values Score value at each spline point.
25  \param[in] minrange Feature value at first spline point.
26  \param[in] spacing Distance (in feature space) between points
27  */
28  ClosedCubicSpline(const Floats &values, double minrange, double spacing);
29 
30  virtual DerivativePair evaluate_with_derivative(double feature) const;
31 
32  virtual double evaluate(double feature) const;
33 
35 
36  void do_show(std::ostream &out) const;
37 
38  private:
39  Floats values_;
40  Floats second_derivs_;
41  Float minrange_;
42  Float maxrange_;
43  Float spacing_;
44 };
45 
46 IMPCORE_END_NAMESPACE
47 
48 #endif /* IMPCORE_CLOSED_CUBIC_SPLINE_H */
virtual DerivativePair evaluate_with_derivative(double feature) const
Calculate score and derivative with respect to the given feature.
Import IMP/kernel/UnaryFunction.h in the namespace.
Abstract single variable functor class for score functions.
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.
std::pair< double, double > DerivativePair
A pair representing a function value with its first derivative.
Definition: base/types.h:23
double Float
Basic floating-point value (could be float, double...)
Definition: base/types.h:20
Closed cubic spline function.