00001
00002
00003
00004
00005 #ifndef SVMVARS_H
00006 #define SVMVARS_H
00007
00008 #include "SimpleVectorHandle.h"
00009 #include <iostream>
00010 #include <fstream>
00011 using namespace std;
00012
00013 #include "Variables.h"
00014
00022 class SvmVars : public Variables
00023 {
00024 public:
00025
00027 int hyperplanedim;
00028
00030 int nobservations;
00031
00035 SimpleVectorHandle z, w, u, v, s;
00036 double beta;
00037
00040 SvmVars(int hyperplanedim_in, int nobservations_in);
00041
00045 SvmVars(int hyperplanedim_in, int nobservations_in,
00046 double w[], double v[], double z[], double u[], double s[] );
00047
00049 virtual ~SvmVars();
00050
00052 virtual void saxpy( Variables *b, double alpha );
00053
00054 virtual void negate();
00055
00056 virtual double mu();
00057
00058 virtual double mustep(Variables *step, double alpha);
00059
00060 virtual double stepbound( Variables *b );
00061
00062 virtual void interiorPoint( double alpha, double beta );
00063 virtual void shiftBoundVariables( double alpha, double beta );
00064 virtual double violation();
00065
00066 virtual void print();
00067
00070 virtual void printCoefs();
00071
00072 virtual void copy(Variables *b);
00073
00074 virtual double findBlocking( Variables * step,
00075 double & primalValue,
00076 double & primalStep,
00077 double & dualValue,
00078 double & dualStep,
00079 int& firstOrSecond );
00080
00082 virtual void asMfile( ostream& os );
00083
00084 virtual double onenorm();
00085 virtual double infnorm();
00086 };
00087
00088 #endif
00089
00090
00091
00092