📄 easylr.h
字号:
/*------------------------------------------------------------------------------*
* File Name: EasyLR.h *
* Creation: GJL 7/17/03 *
* Purpose: OriginC header file containing implementation of EasyLR class. *
* Copyright (c) OriginLab Corp. 2003, 2004, 2005, 2006, 2007 *
* All Rights Reserved *
*------------------------------------------------------------------------------*/
#ifndef _EASY_LR_H
#define _EASY_LR_H
class EasyLR : public EasyFit
{
public:
// Constructors
EasyLR():EasyFit() {}
EasyLR(Curve& crvOriginal):EasyFit(crvOriginal) {}
EasyLR(LPCSTR lpcszYData):EasyFit(lpcszYData) {}
EasyLR(LPCSTR lpcszXData, LPCSTR lpcszYData):EasyFit(lpcszXData, lpcszYData) {}
EasyLR(Dataset& dsX, Dataset dsY):EasyFit(dsX, dsY) {}
EasyLR(Worksheet& wks, int nColX, int nColY):EasyFit(wks, nColX, nColY) {}
EasyLR(Worksheet& wks, int nColY):EasyFit(wks, nColY) {}
EasyLR(DataPlot& dp):EasyFit(dp) {}
EasyLR(curvebase& crv, int& nNumMissingInCopy, int& nSrcOffset, DWORD dwOptions = 0,
int nLower = -1, int nUpper = -1)
:EasyFit(crv, nNumMissingInCopy, nSrcOffset, dwOptions, nLower, nUpper) {}
// Destructor
~EasyLR() {}
// Virtual Methods
virtual BOOL Fit();
virtual BOOL Init(Curve& crv);
};
// Virtual Method
// Initialize settings and input curve
BOOL EasyLR::Init(Curve& crv)
{
Tree trTemp;
trTemp.GUI.Fit.ThroughZero.nVal = 0; // Force fit to pass thru zero
trTemp.GUI.Fit.FixSlope.nVal = 0; // Force slope to be fixed
trTemp.GUI.Fit.FixSlopeAt.dVal = 1; // Fixed value of slope (Note: cannot fix slope and thru zero at same time, should return error from LLOC)
trTemp.GUI.Fit.ErrBarWeight.nVal = 0; // Use error column for wt - use (1/err^2) as wt factor
trTemp.GUI.Fit.UseReducedChiSq.nVal= 0; // Scale parameter errors with reduced chisqr
trTemp.GUI.ResultCurves.Points.nVal = 60; // Number of points in fit curve
trTemp.GUI.ResultCurves.ConfBands.nVal = 0; // Create confidence bands - if not set, then matrix will have empty columns
trTemp.GUI.ResultCurves.PredBands.nVal = 0; // Create prediction bands - if not set, then matrix will have empty columns
trTemp.GUI.ResultCurves.Confidence.dVal = 95; // Confidence value to be used
trTemp.Calculation.Control.UseDataXRange.nVal = 1; // Option = 1 to use data range, = 0 to use X1, X2
trTemp.Calculation.Control.X1.dVal = NANUM; // Default X minimum for fit curve
trTemp.Calculation.Control.X2.dVal = NANUM; // Default X maximum for fit curve
m_trWhole.AddNode(trTemp.GUI.Clone());
m_trWhole.AddNode(trTemp.Calculation.Clone());
return EasyFit::Init(crv);
}
// Virtual Method
// Customize settings, perform fit, and create output curve in hidden worksheet
BOOL EasyLR::Fit()
{
matrix mResultCurves;
// Customize Settings
if( Settings.ThroughZero.IsValid() )
m_trWhole.GUI.Fit.ThroughZero.nVal = Settings.ThroughZero.nVal;
if( Settings.FixSlope.IsValid() )
m_trWhole.GUI.Fit.FixSlope.nVal = Settings.FixSlope.nVal;
if( Settings.FixSlopeAt.IsValid() )
m_trWhole.GUI.Fit.FixSlopeAt.dVal = Settings.FixSlopeAt.dVal;
if( Settings.UseReducedChiSq.IsValid() )
m_trWhole.GUI.Fit.UseReducedChiSq.nVal = Settings.UseReducedChiSq.nVal;
if( Settings.Points.IsValid() )
m_trWhole.GUI.ResultCurves.Points.nVal = Settings.Points.nVal;
if( Settings.Confidence.IsValid() )
m_trWhole.GUI.ResultCurves.Confidence.dVal = Settings.Confidence.dVal;
if( Settings.UseDataXRange.IsValid() )
m_trWhole.Calculation.Control.UseDataXRange.nVal = Settings.UseDataXRange.nVal;
if( Settings.X1.IsValid() )
m_trWhole.Calculation.Control.X1.dVal = Settings.X1.dVal;
if( Settings.X2.IsValid() )
m_trWhole.Calculation.Control.X2.dVal = Settings.X2.dVal;
// Perform fit and create output curve in hidden worksheet
if( ERROR_NO_ERROR == stat_linear_fit(m_crvInput, mResultCurves, m_trWhole) )
return CreateOutputCurve(mResultCurves);
else
return FALSE;
}
// Methods
//BOOL Attach(LPCSTR lpcszYData) {return m_crvInput.Attach(lpcszYData);}
//BOOL Attach(LPCSTR lpcszXData, LPCSTR lpcszYData) {return m_crvInput.Attach(lpcszXData, lpcszYData);}
#endif // _EASY_LR_H
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -