IMP  2.1.1
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-2013 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>
13 
14 IMPCORE_BEGIN_NAMESPACE
15 
16 //! Closed cubic spline function.
17 /** This function is a cubic spline interpolating a set of values.
18  The function is periodic, so the score will also have the same value at
19  minrange + spacing * values.size(). See OpenCubicSpline for a
20  non-periodic spline.
21  \see OpenCubicSpline
22  */
23 class IMPCOREEXPORT ClosedCubicSpline : public UnaryFunction {
24  public:
25  /** \param[in] values Score value at each spline point.
26  \param[in] minrange Feature value at first spline point.
27  \param[in] spacing Distance (in feature space) between points
28  */
29  ClosedCubicSpline(const Floats &values, double minrange, double spacing);
30 
31  virtual DerivativePair evaluate_with_derivative(double feature) const;
32 
33  virtual double evaluate(double feature) const;
34 
36 
37  void do_show(std::ostream &out) const;
38 
39  private:
40  Floats values_;
41  Floats second_derivs_;
42  Float minrange_;
43  Float maxrange_;
44  Float spacing_;
45 };
46 
47 IMPCORE_END_NAMESPACE
48 
49 #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
Import IMP/kernel/unary_function_macros.h in the namespace.
double Float
Basic floating-point value (could be float, double...)
Definition: base/types.h:20
Closed cubic spline function.