sfof
spline.hpp
Go to the documentation of this file.
1 /*
2  * @file spline.hpp
3  *
4  * @author Tino Kluge, Samuel Farrens
5  */
6 
7 #ifndef SPLINE_H
8 #define SPLINE_H
9 
18 #include <cstdio>
19 #include <cassert>
20 #include <vector>
21 #include <algorithm>
22 
23 // spline interpolation
24 class Spline {
25 private:
26  std::vector<double> m_x, m_y; // x,y coordinates of points
27  // interpolation parameters
28  // f(x) = a*(x-x_i)^3 + b*(x-x_i)^2 + c*(x-x_i) + y_i
29  std::vector<double> m_a, m_b, m_c, m_d;
30 public:
31  Spline(){
32  };
33  void set_points(const std::vector<double>& x, const std::vector<double>& y,
34  bool cubic_spline = true);
35  double operator() (double x) const;
36 };
37 
38 #endif // SPLINE_H
Spline::m_d
std::vector< double > m_d
Definition: spline.hpp:29
Spline::m_y
std::vector< double > m_y
Definition: spline.hpp:26
Spline
Class for cubic spline interpolation.
Definition: spline.hpp:24
Spline::set_points
void set_points(const std::vector< double > &x, const std::vector< double > &y, bool cubic_spline=true)
Definition: spline.cpp:6
Spline::Spline
Spline()
Definition: spline.hpp:31
Spline::m_x
std::vector< double > m_x
Definition: spline.hpp:26
Spline::m_b
std::vector< double > m_b
Definition: spline.hpp:29
Spline::operator()
double operator()(double x) const
Definition: spline.cpp:66
Spline::m_c
std::vector< double > m_c
Definition: spline.hpp:29
Spline::m_a
std::vector< double > m_a
Definition: spline.hpp:29