#pragma once #include "Defines.h" #include "mAlgPseudo_global.h" #include "mAlgDefines.h" #include "mAlgMatrix.h" // 拟压力相关的通用函数类 class M_ALGPSEUDO_EXPORT iAlgPseuBase { public: iAlgPseuBase(); // 当前是否采用三区模式计算拟压力 static void setPseuMode(int n); static int getPseuMode(); // 主调用函数,内部自动区分压力还是拟压力 static bool calP(double ps, double &p, int which = -1); static bool calPS(double p, double &ps, int which = -1); // 计算“x--->y”的回归曲线方程系数 static bool _fitXtoY(VecDouble vecXs, VecDouble vecYs, VecDouble &vecCoefs, bool isZero = true); // 计算“y--->x”的回归曲线方程系数(反推) static bool _fitYtoX(VecDouble vecXs, VecDouble vecYs, VecDouble &vecCoefs, bool isZero = false); // 计算相关性系数 // vecXs是横坐标,vecYs为纵坐标,vecCoefs为系数 static bool _calR2(VecDouble vecXs, VecDouble vecYs, VecDouble vecCoefs, double &R2); // 多项式转换 static bool _calMultiPolyX(double x, double &y, VecDouble vecCoefs); private: // 当前是否采用三区模式计算拟压力 // 0:常规、1:三区拟压力(白)、2:组分三区拟压力(徐) static int m_nPseuMode; };