SDC C-Project CF Review 프로그램
ReviewHistory/include/akCore/akInterpolation.h
»õ ÆÄÀÏ
@@ -0,0 +1,48 @@
#pragma once
#include "akCoreLinker.h"
#include <vector>
namespace akCore
{
   class AKCORE_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)   ;
   };
}