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

QpBoundVars Class Reference
[QpBound]

#include <QpBoundVars.h>

Inheritance diagram for QpBoundVars:

Variables List of all members.

Public Member Functions

 QpBoundVars (QpBound *f, QpBoundData *prob)
 QpBoundVars (QpBound *f, QpBoundData *prob, OoqpVector *x, OoqpVector *t, OoqpVector *v, OoqpVector *tau, OoqpVector *nu)
virtual double mu ()
virtual double mustep (Variables *step, double alpha)
virtual void saxpy (Variables *b, double alpha)
virtual void negate ()
virtual double findBlocking (Variables *step, double &primalValue, double &primalStep, double &dualValue, double &dualStep, int &firstOrSecond)
virtual double stepbound (Variables *b)
virtual void interiorPoint (double alpha, double beta)
virtual void shiftBoundVariables (double alpha, double beta)
virtual double violation ()
virtual void print ()
virtual void copy (Variables *b)
virtual double onenorm ()
virtual double infnorm ()

Public Attributes

QpBound * factory
OoqpVectorHandle x
OoqpVectorHandle t
OoqpVectorHandle v
OoqpVectorHandle tau
OoqpVectorHandle nu
OoqpVectorHandle index_lower
OoqpVectorHandle index_upper
int nx
int nlower
int nupper

Detailed Description

Variables for the bound-constrained QP formulation.


Constructor & Destructor Documentation

QpBoundVars::QpBoundVars QpBound *  f,
QpBoundData prob
 

constructor that allocates its own storage

QpBoundVars::QpBoundVars QpBound *  f,
QpBoundData prob,
OoqpVector x,
OoqpVector t,
OoqpVector v,
OoqpVector tau,
OoqpVector nu
 

constructor that uses storage already allocated


Member Function Documentation

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

copy the variables

Implements Variables.

virtual double QpBoundVars::findBlocking Variables step,
double &  primalValue,
double &  primalStep,
double &  dualValue,
double &  dualStep,
int &  firstOrSecond
[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:
primalValue the value of the blocking component of the primal variables (t,v).
primalStep the corresponding value of the blocking component of the primal step variables (b->t,b->v).
dualValue the value of the blocking component of the dual variables (tau,nu).
dualStep the corresponding value of the blocking component of the dual step variables (b->tau,b->nu).
firstOrSecond 1 if the primal step is blocking, 2 if the dual step is block, 0 if no step is blocking.
See also:
stepbound

Implements Variables.

virtual double QpBoundVars::infnorm  )  [virtual]
 

compute the inf-norm of the variables

Implements Variables.

virtual void QpBoundVars::interiorPoint double  alpha,
double  beta
[virtual]
 

set components of (t,v) to alpha and of (tau,nu) to beta

Implements Variables.

virtual double QpBoundVars::mu  )  [virtual]
 

calculates the complementarity gap

Implements Variables.

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

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

Implements Variables.

virtual void QpBoundVars::negate  )  [virtual]
 

negate the value of all the variables in this structure

Implements Variables.

virtual double QpBoundVars::onenorm  )  [virtual]
 

compute the 1-norm of the variables

Implements Variables.

virtual void QpBoundVars::print  )  [virtual]
 

print the variables

Reimplemented from Variables.

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

adds (alpha b) to the current variables

Implements Variables.

virtual void QpBoundVars::shiftBoundVariables double  alpha,
double  beta
[virtual]
 

add alpha to components of (t,v) and beta to components of (tau,nu)

Implements Variables.

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

calculate the largest alpha in (0,1] such that the nonnegative variables stay nonnegative in the given search direction. In the general QP problem formulation, this is the largest value of alpha such that (t,v,tau,nu) + alpha * (b->t,b->v,b->tau,b->nu) >= 0.

See also:
findBlocking

Implements Variables.

virtual double QpBoundVars::violation  )  [virtual]
 

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

Implements Variables.


Member Data Documentation

OoqpVectorHandle QpBoundVars::index_lower
 

lower bound index vector

OoqpVectorHandle QpBoundVars::index_upper
 

upper bound index vector

int QpBoundVars::nlower
 

actual number of lower bounds

OoqpVectorHandle QpBoundVars::nu
 

upper bound multipliers

int QpBoundVars::nupper
 

actual number of upper bounds

int QpBoundVars::nx
 

problem dimension

OoqpVectorHandle QpBoundVars::t
 

lower bound slacks

OoqpVectorHandle QpBoundVars::tau
 

lower bound multipliers

OoqpVectorHandle QpBoundVars::v
 

upper bound slacks

OoqpVectorHandle QpBoundVars::x
 

primal variables


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