Main Page | Modules | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | File Members

Variables Class Reference
[AbstractProblemFormulation]

#include <Variables.h>

Inheritance diagram for Variables:

HuberVars QpBoundVars QpExampleVars QpGenVars SvmVars List of all members.

Public Member Functions

virtual double mu ()=0
virtual double mustep (Variables *step, double alpha)=0
virtual void negate ()=0
virtual void saxpy (Variables *b, double alpha)=0
virtual double stepbound (Variables *b)=0
virtual double findBlocking (Variables *step, double &primalValue, double &primalStep, double &dualValue, double &dualStep, int &firstOrSecond)=0
virtual void interiorPoint (double alpha, double beta)=0
virtual void shiftBoundVariables (double alpha, double beta)=0
virtual double violation ()=0
virtual void print ()
virtual void copy (Variables *b)=0
virtual double onenorm ()=0
virtual double infnorm ()=0

Public Attributes

int nComplementaryVariables

Detailed Description

Holds the variables used by the interior point solver. In terms of in our abstract problem formulation, these variables are the vectors x, y, z and s.


Member Function Documentation

virtual void Variables::copy Variables b  )  [pure virtual]
 

copy the variables

Implemented in HuberVars, QpBoundVars, QpExampleVars, QpGenVars, and SvmVars.

virtual double Variables::findBlocking Variables step,
double &  primalValue,
double &  primalStep,
double &  dualValue,
double &  dualStep,
int &  firstOrSecond
[pure virtual]
 

Performs the same function as stepbound, and supplies additional information about which component of the nonnegative variables is responsible for restricting alpha. In terms of the abstract formulation, the components have the following meanings.

Parameters:
step step in the variables
primalValue the value of the blocking component of the primal variables s.
primalStep the corresponding value of the blocking component of the primal step variables b->s.
dualValue the value of the blocking component of the dual variables z.
dualStep the corresponding value of the blocking component of the dual step variables b->z.
firstOrSecond 1 if the primal step is blocking, 2 if the dual step is block, 0 if no step is blocking.
See also:
stepbound

Implemented in HuberVars, QpBoundVars, QpExampleVars, QpGenVars, and SvmVars.

virtual double Variables::infnorm  )  [pure virtual]
 

compute the inf-norm of the variables

Implemented in HuberVars, QpBoundVars, QpExampleVars, QpGenVars, and SvmVars.

virtual void Variables::interiorPoint double  alpha,
double  beta
[pure virtual]
 

In the abstract QP formulation, sets s to alpha, z to beta and the other variable components to zero.

Implemented in HuberVars, QpBoundVars, QpExampleVars, QpGenVars, and SvmVars.

virtual double Variables::mu  )  [pure virtual]
 

compute complementarity gap, obtained by taking the inner product of the complementary vectors and dividing by the total number of components

Implemented in HuberVars, QpBoundVars, QpExampleVars, QpGenVars, and SvmVars.

virtual double Variables::mustep Variables step,
double  alpha
[pure virtual]
 

compute the complementarity gap resulting from a step of length "alpha" along direction "step"

Implemented in HuberVars, QpBoundVars, QpExampleVars, QpGenVars, and SvmVars.

virtual void Variables::negate  )  [pure virtual]
 

negate the value of all the variables in this structure

Implemented in HuberVars, QpBoundVars, QpExampleVars, QpGenVars, and SvmVars.

virtual double Variables::onenorm  )  [pure virtual]
 

compute the 1-norm of the variables

Implemented in HuberVars, QpBoundVars, QpExampleVars, QpGenVars, and SvmVars.

virtual void Variables::print  )  [virtual]
 

print the variables

Reimplemented in HuberVars, QpBoundVars, QpExampleVars, QpGenVars, and SvmVars.

virtual void Variables::saxpy Variables b,
double  alpha
[pure virtual]
 

given variables b, compute a <- a + alpha b, where a are the variables in this class

Implemented in HuberVars, QpBoundVars, QpExampleVars, QpGenVars, and SvmVars.

virtual void Variables::shiftBoundVariables double  alpha,
double  beta
[pure virtual]
 

In the standard QP formulation, sets s += alpha, z += beta

Implemented in HuberVars, QpBoundVars, QpExampleVars, QpGenVars, and SvmVars.

virtual double Variables::stepbound Variables b  )  [pure virtual]
 

calculate the largest alpha in (0,1] such that the nonnegative variables stay nonnegative in the given search direction. In the abstract problem formulation, this is the largest value of alpha such that (s,z) + alpha * (b->s,b->z) >= 0.

See also:
findBlocking

Implemented in HuberVars, QpBoundVars, QpExampleVars, QpGenVars, and SvmVars.

virtual double Variables::violation  )  [pure virtual]
 

The amount by which the current variables violate the non-negativity constraints.

Implemented in HuberVars, QpBoundVars, QpExampleVars, QpGenVars, and SvmVars.


Member Data Documentation

int Variables::nComplementaryVariables
 

number of complementary primal-dual variables.


The documentation for this class was generated from the following file:
Generated on Wed Mar 22 13:58:35 2006 for OOQP by doxygen 1.3.5