00001
00002
00003
00004
00005 #ifndef SVMDATA_H
00006 #define SVMDATA_H
00007
00008 #include "Data.h"
00009 #include "DenseGenMatrixHandle.h"
00010 #include "DenseSymMatrixHandle.h"
00011 #include "SimpleVectorHandle.h"
00012
00020 class SvmData : public Data
00021 {
00022 public:
00023
00033 SvmData(int hyperplanedim_in, int nobservations_in,
00034 double penalty );
00035
00051 SvmData(int hyperplanedim_in, int nobservations_in, double * X, double * d,
00052 double penalty );
00053
00055 ~SvmData();
00056
00072 static SvmData * textInput(char filename[], double penalty, int &iErr);
00073
00075 double mPenalty;
00076
00078 int hyperplanedim;
00079
00081 int nobservations;
00082
00087 DenseGenMatrixHandle Yt;
00088
00091 SimpleVectorHandle categories;
00092
00097 virtual void YMult( double beta, SimpleVector& y,
00098 double alpha, SimpleVector& x );
00099
00104 virtual void YTransMult( double beta, SimpleVector& y,
00105 double alpha, SimpleVector& x );
00106
00108 virtual double dotCategories( SimpleVector & v );
00109
00110 virtual double datanorm();
00111 virtual void datarandom();
00112 virtual void datainput() { };
00113 virtual void print() {};
00114 double penalty() { return mPenalty; }
00115 };
00116
00117 enum { svminputok = 0,
00118 svmfileopenerror = -1,
00119 svmfileinputerror = -2,
00120 svmlabelerror = -3
00121 };
00122
00123 #endif
00124
00125