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

QpGenVars Class Reference
[QpGen]

#include <QpGenVars.h>

Inheritance diagram for QpGenVars:

Variables List of all members.

Public Member Functions

 QpGenVars (OoqpVector *x_in, OoqpVector *s_in, OoqpVector *y_in, OoqpVector *z_in, OoqpVector *v_in, OoqpVector *gamma_in, OoqpVector *w_in, OoqpVector *phi_in, OoqpVector *t_in, OoqpVector *lambda_in, OoqpVector *u_in, OoqpVector *pi_in, OoqpVector *ixlow_in, OoqpVector *ixupp_in, OoqpVector *iclow_in, OoqpVector *icupp_in)
 QpGenVars (LinearAlgebraPackage *la, int nx_, int my_, int mz_, OoqpVector *ixlow, OoqpVector *ixupp, OoqpVector *iclow, OoqpVector *icupp)
virtual double mu ()
virtual double mustep (Variables *step_in, double alpha)
virtual void saxpy (Variables *b, double alpha)
virtual void negate ()
virtual double stepbound (Variables *b)
virtual double findBlocking (Variables *step, double &primalValue, double &primalStep, double &dualValue, double &dualStep, int &firstOrSecond)
virtual void interiorPoint (double alpha, double beta)
virtual void shiftBoundVariables (double alpha, double beta)
virtual int isInteriorPoint ()
virtual double violation ()
virtual void print ()
virtual void printSolution (MpsReader *reader, QpGenData *prob, int &iErr)
virtual void unscaleSolution (QpGenData *data)
virtual void unscaleBounds (QpGenData *data)
virtual int validNonZeroPattern ()
virtual void copy (Variables *b)
virtual double onenorm ()
virtual double infnorm ()

Public Attributes

OoqpVectorHandle x
OoqpVectorHandle s
OoqpVectorHandle y
OoqpVectorHandle z
OoqpVectorHandle v
OoqpVectorHandle phi
OoqpVectorHandle w
OoqpVectorHandle gamma
OoqpVectorHandle t
OoqpVectorHandle lambda
OoqpVectorHandle u
OoqpVectorHandle pi

Protected Attributes

int nx
int nxupp
int nxlow
int my
int mz
int mcupp
int mclow
OoqpVectorHandle ixlow
OoqpVectorHandle ixupp
OoqpVectorHandle icupp
OoqpVectorHandle iclow

Detailed Description

Variables for the general QP formulation.


Constructor & Destructor Documentation

QpGenVars::QpGenVars OoqpVector x_in,
OoqpVector s_in,
OoqpVector y_in,
OoqpVector z_in,
OoqpVector v_in,
OoqpVector gamma_in,
OoqpVector w_in,
OoqpVector phi_in,
OoqpVector t_in,
OoqpVector lambda_in,
OoqpVector u_in,
OoqpVector pi_in,
OoqpVector ixlow_in,
OoqpVector ixupp_in,
OoqpVector iclow_in,
OoqpVector icupp_in
 

constructor in which the data and variable pointers are set to point to the given arguments

QpGenVars::QpGenVars LinearAlgebraPackage la,
int  nx_,
int  my_,
int  mz_,
OoqpVector ixlow,
OoqpVector ixupp,
OoqpVector iclow,
OoqpVector icupp
 

constructor that creates variables objects of specified dimensions.


Member Function Documentation

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

copy the variables

Implements Variables.

virtual double QpGenVars::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 (u,t,v,w).
primalStep the corresponding value of the blocking component of the primal step variables (b->u,b->t,b->v,b->w).
dualValue the value of the blocking component of the dual variables (lambda,pi,phi,gamma).
dualStep the corresponding value of the blocking component of the dual step variables (b->lambda,b->pi,b->phi,b->gamma).
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 QpGenVars::infnorm  )  [virtual]
 

compute the inf-norm of the variables

Implements Variables.

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

sets components of (u,t,v,w) to alpha and of (lambda,pi,phi,gamma) to beta

Implements Variables.

virtual int QpGenVars::isInteriorPoint  )  [virtual]
 

check whether this is an interior point. Useful as a sanity check.

virtual double QpGenVars::mu  )  [virtual]
 

computes mu = (t'lambda +u'pi + v'gamma + w'phi)/(mclow+mcupp+nxlow+nxupp)

Implements Variables.

virtual double QpGenVars::mustep Variables step_in,
double  alpha
[virtual]
 

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

Implements Variables.

virtual void QpGenVars::negate  )  [virtual]
 

negate the value of all the variables in this structure

Implements Variables.

virtual double QpGenVars::onenorm  )  [virtual]
 

compute the 1-norm of the variables

Implements Variables.

virtual void QpGenVars::print  )  [virtual]
 

print the variables

Reimplemented from Variables.

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

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

Implements Variables.

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

add alpha to components of (u,t,v,w) and beta to components of (lambda,pi,phi,gamma)

Implements Variables.

virtual double QpGenVars::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,u,v,w,lambda,pi,phi,gamma) + alpha * (b->t,b->u,b->v,b->w,b->lambda,b->pi,b->phi,b->gamma) >= 0.

See also:
findBlocking

Implements Variables.

virtual double QpGenVars::violation  )  [virtual]
 

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

Implements 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