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 00076 virtual double findBlocking( Variables * step, 00077 double & primalValue, 00078 double & primalStep, 00079 double & dualValue, 00080 double & dualStep, 00081 int& firstOrSecond ) = 0; 00082 00085 virtual void interiorPoint( double alpha, double beta ) = 0; 00086 00088 virtual void shiftBoundVariables( double alpha, double beta ) = 0; 00089 00092 virtual double violation() = 0; 00093 00095 virtual void print(); 00096 00098 virtual void copy(Variables *b) = 0; 00099 00101 virtual double onenorm() = 0; 00102 00104 virtual double infnorm() = 0; 00105 00106 virtual ~Variables() {}; 00107 }; 00108 00109 #endif 00110 00111