Changeset 386
- Timestamp:
- Aug 15, 2005, 1:16:52 AM (18 years ago)
- Location:
- trunk/lib/statistics
- Files:
-
- 2 added
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/lib/statistics/Makefile.am
r384 r386 9 9 libstatistics_la_SOURCES = \ 10 10 Averager.cc AveragerPair.cc AveragerWeighted.cc Fisher.cc Histogram.cc \ 11 Kernel.cc KernelBox.cc KernelTriCube.cc Linear.cc Local.cc Naive.cc \ 11 Kernel.cc KernelBox.cc KernelTriCube.cc Linear.cc Local.cc \ 12 MultiDimensional.cc Naive.cc \ 12 13 Pearson.cc Polynomial.cc ROC.cc Score.cc utility.cc 13 14 … … 16 17 include_statistics_HEADERS = \ 17 18 Averager.h AveragerPair.h AveragerWeighted.h Fisher.h Histogram.h \ 18 Kernel.h KernelBox.h KernelTriCube.h Linear.h Local.h Naive.h \ 19 Kernel.h KernelBox.h KernelTriCube.h Linear.h Local.h \ 20 MultiDimensional.h Naive.h \ 19 21 OneDimensional.h Pearson.h Polynomial.h ROC.h Score.h tScore.h utility.h -
trunk/lib/statistics/Polynomial.cc
r385 r386 3 3 #include <c++_tools/statistics/Polynomial.h> 4 4 #include <c++_tools/gslapi/matrix.h> 5 6 #include <cmath> 5 #include <c++_tools/gslapi/vector.h> 7 6 8 7 namespace theplu { … … 11 10 12 11 13 Polynomial::~Polynomial(void)14 {15 if (work_)16 gsl_multifit_linear_free(work_);17 }18 19 20 21 12 void Polynomial::fit(const gslapi::vector& x, const gslapi::vector& y) 22 13 { 23 if (work_) 24 gsl_multifit_linear_free(work_); 25 work_=gsl_multifit_linear_alloc(x.size(),fit_parameters_.size()); 26 X_=gslapi::matrix(x.size(),fit_parameters_.size()); 27 for (size_t i=0; i<x.size(); ++i) 28 for (u_int j=0; j<fit_parameters_.size(); j++) 29 X_(i,j)=pow(x(i),j); 30 gsl_multifit_linear(X_.gsl_matrix_pointer(),y.gsl_vector_pointer(), 31 fit_parameters_.TEMP_gsl_vector_pointer(), 32 covariance_.gsl_matrix_pointer(),&chisquare_,work_); 14 gslapi::matrix X=gslapi::matrix(x.size(),power_+1,1); 15 for (size_t i=0; i<X.rows(); ++i) 16 for (u_int j=1; j<X.columns(); j++) 17 X(i,j)=X(i,j-1)*x(i); 18 md_.fit(X,y); 33 19 } 34 20 -
trunk/lib/statistics/Polynomial.h
r385 r386 5 5 6 6 #include <c++_tools/statistics/OneDimensional.h> 7 #include <c++_tools/statistics/MultiDimensional.h> 7 8 8 #include <c++_tools/gslapi/matrix.h>9 9 #include <c++_tools/gslapi/vector.h> 10 10 … … 27 27 /// 28 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) {} 29 : OneDimensional(), power_(power) {} 32 30 33 31 /// 34 32 /// @brief Destructor 35 33 /// 36 ~Polynomial(void);34 inline ~Polynomial(void) {}; 37 35 38 36 /// … … 44 42 /// 45 43 /// 46 gslapi::vector fit_parameters(void) { return fit_parameters_; }44 gslapi::vector fit_parameters(void) { return md_.fit_parameters(); } 47 45 48 46 inline void fit(const gslapi::vector& x, const gslapi::vector& y, … … 60 58 61 59 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 60 MultiDimensional md_; 61 size_t power_; 67 62 68 63 };
Note: See TracChangeset
for help on using the changeset viewer.