00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef PPCA_H
00021 #define PPCA_H
00022 #include "PLibraries.h"
00023 #include "gsl/gsl_math.h"
00024 #include "gsl/gsl_matrix.h"
00025 #include "gsl/gsl_vector.h"
00026 #include "gsl/gsl_eigen.h"
00027 class PPCA{
00028 public:
00029 static Vector3 getMean(Vector3 *points, int number);
00030 static void normalize( Vector3 mean, Vector3 *data, Vector3 **target, int number);
00031 static void getCovariance(gsl_matrix *covm, Vector3 *data, int number);
00032 static void getEigenvector(gsl_matrix *matrix, gsl_vector *eigenvalues, gsl_matrix *eigenvector);
00033 static void getPrincipalComponent(gsl_vector *pc, Vector3 *points, int number);
00034 static void getPrincipalComponent(gsl_vector *pc, vector<Vector3*> *points);
00035 };
00036 #endif