00001 /* OOQP * 00002 * Authors: E. Michael Gertz, Stephen J. Wright * 00003 * (C) 2001 University of Chicago. See Copyright Notification in OOQP */ 00004 00005 #ifndef VARIABLES_H 00006 #define VARIABLES_H 00007 00013 class LinearSystem; 00014 class Residuals; 00015 class Data; 00016 class Solver; 00023 class Variables 00024 { 00025 public: 00027 int nComplementaryVariables; 00028 00032 virtual double mu() = 0; 00033 00036 virtual double mustep(Variables *step, double alpha) = 0; 00037 00039 virtual void negate() = 0; 00040 00043 virtual void saxpy( Variables *b, double alpha) = 0; 00044 00052 virtual double stepbound( Variables *b ) = 0; 00053 00077 virtual double findBlocking( Variables * step, 00078 double & primalValue, 00079 double & primalStep, 00080 double & dualValue, 00081 double & dualStep, 00082 int& firstOrSecond ) = 0; 00083 00086 virtual void interiorPoint( double alpha, double beta ) = 0; 00087 00089 virtual void shiftBoundVariables( double alpha, double beta ) = 0; 00090 00093 virtual double violation() = 0; 00094 00096 virtual void print(); 00097 00099 virtual void copy(Variables *b) = 0; 00100 00102 virtual double onenorm() = 0; 00103 00105 virtual double infnorm() = 0; 00106 00107 virtual ~Variables() {}; 00108 }; 00109 00110 #endif 00111 00112