00001
00002
00003
00004
00005 #ifndef HuberDATA_H
00006 #define HuberDATA_H
00007
00008 #include "Data.h"
00009 #include "DenseGenMatrixHandle.h"
00010 #include "DenseSymMatrixHandle.h"
00011 #include "SimpleVectorHandle.h"
00012
00020 class HuberData : public Data
00021 {
00022 public:
00023
00026 int m, n;
00027
00029 HuberData(int nobservations_in, int npredictors_in, double cutoff,
00030 double * X = 0, double * y = 0);
00031
00033 ~HuberData();
00034
00037 DenseGenMatrixHandle Xt;
00038
00040 SimpleVectorHandle Y;
00041
00044 double cutoff;
00045
00047 int nobservations;
00048
00050 int npredictors;
00051
00061 static HuberData * textInput(char filename[], double cutoff, int &iErr);
00062
00064 virtual void XtMult( double beta, SimpleVector& y,
00065 double alpha, SimpleVector& x );
00066
00069 virtual void XtTransMult( double beta, SimpleVector& y,
00070 double alpha, SimpleVector& x );
00071
00072 virtual double datanorm();
00073 virtual void datarandom();
00074 virtual void print() {};
00075 };
00076
00077
00078 enum { huberinputok = 0,
00079 huberfileopenerror = -1,
00080 huberfileinputerror = -2
00081 };
00082
00083 #endif