Engauge Digitizer  2
 All Classes Functions Variables Typedefs Enumerations Friends Pages
FittingStatistics.h
1 /******************************************************************************************************
2  * (C) 2016 markummitchell@github.com. This file is part of Engauge Digitizer, which is released *
3  * under GNU General Public License version 2 (GPLv2) or (at your option) any later version. See file *
4  * LICENSE or go to gnu.org/licenses for details. Distribution requires prior written permission. *
5  ******************************************************************************************************/
6 
7 #ifndef FITTING_STATISTICS_H
8 #define FITTING_STATISTICS_H
9 
10 #include "FittingCurveCoefficients.h"
11 #include "FittingPointsConvenient.h"
12 #include <QVector>
13 
14 const int MAX_POLYNOMIAL_ORDER = 9; // Check execution time if this is increased from, say, 6 or 7
15 
16 class Matrix;
17 
20 {
21 public:
24  virtual ~FittingStatistics ();
25 
36  void calculateCurveFitAndStatistics (unsigned int order,
37  const FittingPointsConvenient &pointsConvenient,
38  FittingCurveCoefficients &coefficients,
39  double &mse,
40  double &rms,
41  double &rSquared,
42  int significantDigits);
43 
44 private:
45 
46  void calculateCurveFit (int orderReduced,
47  const FittingPointsConvenient &pointsConvenient,
48  FittingCurveCoefficients &coefficients,
49  int significantDigits);
50  bool calculateCurveFitReducedFurther (int orderReducedFurther,
51  const FittingPointsConvenient &pointsConvenient,
52  int significantDigits,
53  QVector<double> &a) const;
54  void calculateStatistics (const FittingPointsConvenient &pointsConvenient,
55  const FittingCurveCoefficients &coefficients,
56  double &mse,
57  double &rms,
58  double &rSquared);
59  void loadXAndYArrays (int orderReduced,
60  const FittingPointsConvenient &pointsConvenient,
61  Matrix &X,
62  QVector<double> &Y) const;
63  double yFromXAndCoefficients (const FittingCurveCoefficients &coefficients,
64  double x) const;
65 };
66 
67 #endif // FITTING_STATISTICS_H
void calculateCurveFitAndStatistics(unsigned int order, const FittingPointsConvenient &pointsConvenient, FittingCurveCoefficients &coefficients, double &mse, double &rms, double &rSquared, int significantDigits)
Compute the curve fit and the statistics for that curve fit.
FittingStatistics()
Single constructor.
Matrix class that supports arbitrary NxN size.
Definition: Matrix.h:20
This class does the math to compute statistics for FittingWindow.