00001
00002
00003
00004
00005 #ifndef SVMVARS_H
00006 #define SVMVARS_H
00007
00008 #include "SimpleVectorHandle.h"
00009 #include <iostream.h>
00010
00011 #include "Variables.h"
00012
00020 class SvmVars : public Variables
00021 {
00022 public:
00023
00025 int hyperplanedim;
00026
00028 int nobservations;
00029
00033 SimpleVectorHandle z, w, u, v, s;
00034 double beta;
00035
00038 SvmVars(int hyperplanedim_in, int nobservations_in);
00039
00043 SvmVars(int hyperplanedim_in, int nobservations_in,
00044 double w[], double v[], double z[], double u[], double s[] );
00045
00047 virtual ~SvmVars();
00048
00050 virtual void saxpy( Variables *b, double alpha );
00051
00052 virtual void negate();
00053
00054 virtual double mu();
00055
00056 virtual double mustep(Variables *step, double alpha);
00057
00058 virtual double stepbound( Variables *b );
00059
00060 virtual void interiorPoint( double alpha, double beta );
00061 virtual void shiftBoundVariables( double alpha, double beta );
00062 virtual double violation();
00063
00064 virtual void print();
00065
00068 virtual void printCoefs();
00069
00070 virtual void copy(Variables *b);
00071
00072 virtual double findBlocking( Variables * step,
00073 double & primalValue,
00074 double & primalStep,
00075 double & dualValue,
00076 double & dualStep,
00077 int& firstOrSecond );
00078
00080 virtual void asMfile( ostream& os );
00081
00082 virtual double onenorm();
00083 virtual double infnorm();
00084 };
00085
00086 #endif
00087
00088
00089
00090