»õ ÆÄÀÏ |
| | |
| | | #pragma once |
| | | |
| | | |
| | | #include "akLinker.h" |
| | | #include <vector> |
| | | |
| | | namespace akSTL |
| | | { |
| | | class akSTL_DLLSPEC CakInterpolation |
| | | { |
| | | public: |
| | | struct _Data |
| | | { |
| | | _Data() |
| | | { |
| | | x = y = 0; |
| | | } |
| | | double x; |
| | | double y; |
| | | }; |
| | | |
| | | public: |
| | | CakInterpolation(); |
| | | ~CakInterpolation(); |
| | | |
| | | //í´ë¦¬ë
¸ë¯¸ì¼ ë°ì´í° ìì±(rate:ë°ì´í° ê°ê²©) |
| | | void CaculationPolinomial(double min, double max, double rate); |
| | | //íë¹
ì¤íë¼ì¸ ë°ì´í° ìì±(rate:ì ê³¼ ì ì¬ì´ì ë°ì´í° ê°¯ì) |
| | | void CaculationCubicSpline(double rate); |
| | | //Linear(rate:ì ê³¼ ì ì¬ì´ì ë°ì´í° ê°¯ì) |
| | | void CaculationLinear(int step); |
| | | |
| | | void AddPoint(double x, double y); |
| | | inline void ClearPoint(){m_vecInterPoint.clear();}; |
| | | |
| | | inline _Data GetData(int index); |
| | | inline int GetDataNum(){return (int)m_vecInterPoint.size();}; |
| | | |
| | | |
| | | |
| | | |
| | | protected: |
| | | std::vector<_Data> m_vecOrgPoint; |
| | | std::vector<_Data> m_vecInterPoint; |
| | | private: |
| | | void solveTridiag(double* khb, double* diag, double* khp, double* b, int n) ; |
| | | }; |
| | | } |