App

- Main Page
- Related Pages
- Namespaces
- Classes
- Files

- File List
- File Members

CubicSpline.hpp
Go to the documentation of this file.
1
2 #ifndef CUBICSPLINE_HPP_
3 #define CUBICSPLINE_HPP_
4
5 #include <cstdlib>
6 #include <cstring>
7 #include <cmath>
8
9 namespace app {
10
11 // Vyžaduje minimálně 2 body. Mimo body vrací konstantní hodnotu krajního...
12 // Je NULL proof, když se ale cokoliv pokazí při inicializaci, vrací vždy 0.
13 // Vytváří si vlastní kopii interpolovaných hodnot.
14 class CubicSpline {
15 protected:
16 unsigned valsCount;
17 unsigned lastVal;
18 int jsav;
19 int cor;
20 int dj;
21 int ascnd;
22 double *xVals, *yVals;
23 double * y2Vals;
24
25 int initOK;
26
27 int locate(const double x);
28 int hunt(const double x);
29 double interpolate(int jlo, double x) const;
30 int y2ValsInit(const double *xv, const double *yv, double y1_0, double y1_n);
31
32 public:
33 CubicSpline(double const * x, double const * y, unsigned count, double y1_0 = 1.e99, double y1_n = 1.e99); // Pro vetsi nez defaultni hodnotu se pouziji prirozene hodnoty.
34
35 int isOK() const { return initOK; };
36
37 double getValueAt(double x);
38
39 virtual ~CubicSpline();
40 };
41
42 } /* namespace app */
43 #endif /* CUBICSPLINE_HPP_ */