My Project
linear.h
1 
6 #ifndef MATHS_INTERPOLATION_LINEAR_H
7 #define MATHS_INTERPOLATION_LINEAR_H
8 
9 namespace Maths
10 {
11  namespace Interpolation
12  {
15  class Linear {
16  public:
17  int size;
18 
19  Linear(int n, double *x, double *y) {
20  size = n;
21  m_x = new double[n];
22  m_y = new double[n];
23 
24  for (int i = 0; i < n; ++i) {
25  m_x[i] = x[i];
26  m_y[i] = y[i];
27  }
28 
29  }
30 
31  ~Linear() {
32 
33  delete [] m_x;
34  delete [] m_y;
35 
36  }
37 
38  double getValue(double x) {
39  int i = 0;
40  while (x > m_x[++i] && i < size-1);
41 
42  double a = (x - m_x[i - 1]) / (m_x[i] - m_x[i - 1]);
43  return m_y[i - 1] + a * (m_y[i] - m_y[i - 1]);
44  }
45 
46  private:
47 
48  double *m_x, *m_y;
49  };
50  };
51 };
52 
53 #endif
Linear(int n, double *x, double *y)
Definition: linear.h:24
double getValue(double x)
Definition: linear.h:46
Definition: linear.h:9
~Linear()
Definition: linear.h:38