00001 /* OOQP * 00002 * Authors: E. Michael Gertz, Stephen J. Wright * 00003 * (C) 2001 University of Chicago. See Copyright Notification in OOQP */ 00004 00005 #ifndef RESIDUALS_H 00006 #define RESIDUALS_H 00007 00013 class Data; 00014 class Variables; 00015 00022 class Residuals 00023 { 00024 protected: 00025 double mResidualNorm; 00026 double mDualityGap; 00027 public: 00028 int m, n; 00029 00031 double residualNorm() { return mResidualNorm; } 00032 00039 double dualityGap() { return mDualityGap; }; 00040 00043 virtual void calcresids(Data *problem, Variables *vars) = 0; 00044 00049 virtual void add_r3_xz_alpha(Variables *vars, double alpha) = 0; 00050 00055 virtual void set_r3_xz_alpha(Variables *vars, double alpha) = 0; 00056 00058 virtual void clear_r3() = 0; 00059 00062 virtual void clear_r1r2(){} 00063 00071 virtual void project_r3(double rmin, double rmax) = 0; 00072 00073 virtual ~Residuals() {}; 00074 }; 00075 00076 #endif 00077 00078 00079