source: trunk/lib/statistics/Polynomial.h @ 385

Last change on this file since 385 was 385, checked in by Jari Häkkinen, 16 years ago

Continued fixing of regression stuff.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Id
File size: 1.5 KB
Line 
1// $Id: Polynomial.h 385 2005-08-13 09:24:18Z jari $
2
3#ifndef _theplu_statistics_regression_polynomial_
4#define _theplu_statistics_regression_polynomial_
5
6#include <c++_tools/statistics/OneDimensional.h>
7
8#include <c++_tools/gslapi/matrix.h>
9#include <c++_tools/gslapi/vector.h>
10
11#include <gsl/gsl_multifit.h>
12
13
14namespace theplu {
15namespace statistics {
16namespace regression {
17
18  ///
19  ///
20  ///
21  class Polynomial : public OneDimensional
22  {
23  public:
24
25    ///
26    ///
27    ///
28    inline Polynomial(size_t power)
29      : OneDimensional(), chisquare_(0),
30        covariance_(gslapi::matrix(power+1,power+1)),
31        fit_parameters_(gslapi::vector(power+1)), work_(NULL) {}
32
33    ///
34    /// @brief Destructor
35    ///
36    ~Polynomial(void);
37
38    ///
39    ///
40    ///
41    void fit(const gslapi::vector& x, const gslapi::vector& y);
42
43    ///
44    ///
45    ///
46    gslapi::vector fit_parameters(void) { return fit_parameters_; }
47
48    inline void fit(const gslapi::vector& x, const gslapi::vector& y,
49                    const gslapi::vector& w) { assert(0); }
50
51    inline void predict(const double x, double& y, double& y_err,
52                         const double w=1) { assert(0); }
53
54    inline std::ostream& print(std::ostream& s) const
55      { assert(0); return s; }
56
57    inline std::ostream& print_header(std::ostream& s) const
58      { assert(0); return s; }
59
60
61  private:
62    double chisquare_;
63    gslapi::matrix covariance_;
64    gslapi::vector fit_parameters_;
65    gsl_multifit_linear_workspace* work_;
66    gslapi::matrix X_;    // matrix of predictor variables in GSL language
67
68  };
69
70
71}}} // of namespaces regression, statisitcs and thep
72
73#endif
Note: See TracBrowser for help on using the repository browser.