00001 /* OOQP * 00002 * Authors: E. Michael Gertz, Stephen J. Wright * 00003 * (C) 2001 University of Chicago. See Copyright Notification in OOQP */ 00004 00005 #ifndef QPBOUNDRESIDUALS_H 00006 #define QPBOUNDRESIDUALS_H 00007 00008 #include "Residuals.h" 00009 00010 class QpBoundData; 00011 class Variables; 00012 class QpBound; 00013 #include "OoqpVectorHandle.h" 00014 00020 class QpBoundResiduals : public Residuals 00021 { 00022 protected: 00023 QpBound * factory; 00024 public: 00025 int nx; 00026 00027 OoqpVectorHandle rc; 00028 OoqpVectorHandle rl; 00029 OoqpVectorHandle ru; 00030 OoqpVectorHandle rttau; 00031 OoqpVectorHandle rvnu; 00032 OoqpVectorHandle index_lower; 00033 OoqpVectorHandle index_upper; 00034 00035 QpBoundResiduals( QpBound * f, QpBoundData * prob, int nx_); 00036 QpBoundResiduals( QpBound * f, OoqpVector * rc_, 00037 QpBoundData * prob, int nx_); 00038 virtual ~QpBoundResiduals(); 00039 00040 QpBoundResiduals *clone(); 00041 00042 virtual void calcresids( Data *problem, Variables *vars ); 00043 virtual void add_r3_xz_alpha(Variables *vars, double alpha); 00044 virtual void set_r3_xz_alpha(Variables *vars, double alpha); 00045 00046 virtual void clear_r1r2(); 00047 virtual void clear_r3(); 00048 virtual void project_r3(double rmin, double rmax); 00049 }; 00050 00051 #endif