Loading [MathJax]/extensions/tex2jax.js
TransFlow  0.1.0
A transient pipeline flow simulation library
All Classes Namespaces Functions Variables Friends Modules Pages
linearinterpolator.hpp
1 #pragma once
2 
3 #include <armadillo>
4 
5 namespace utils
6 {
8  {
9  // contains methods for finding interpolated points between given points
10  // used for finding height and other properties when setting up the grid
11 
12  public:
14  const arma::vec& positions,
15  const arma::vec& values,
16  const arma::uword interpolationMethod = 0 // default is no interpolation, only height uses linear interpolation
17  );
18 
19  double getValueAtPoint(const double position);
20  arma::vec getValuesAtPoints(const arma::vec& points);
21  static arma::vec getValuesAtPoints(
22  const arma::vec& referencePoints,
23  const arma::vec& referenceValues,
24  const arma::vec& points,
25  const arma::uword interpolationMethod = 0);
26 
27  private:
28  const size_t m_N;
29  arma::vec m_positions;
30  arma::vec m_values;
31  arma::vec m_gradients;
32  arma::uword m_interpolationMethod; // 0 means constant, 1 means linear
33 
34  bool m_printOutsideRangeWarning = false;
35  };
36 }
utils::LinearInterpolator
Definition: linearinterpolator.hpp:7
utils
Definition: utils.hpp:10