PIPS-NLP
Public Member Functions | Public Attributes | List of all members
Variables Class Referenceabstract

#include <Variables.h>

Inheritance diagram for Variables:
NlpGenVars sVars

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
 
virtual void setZero ()=0
 
virtual void mergeNTstep (Variables *Nstep, Variables *Tstep, Variables *Curr_Iter, Residuals *res_in)=0
 
virtual ~Variables ()
 

Public Attributes

long long 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.

Constructor & Destructor Documentation

virtual Variables::~Variables ( )
inlinevirtual

Member Function Documentation

virtual void Variables::copy ( Variables b)
pure virtual

copy the variables this->copyFrom(b)

Implemented in NlpGenVars.

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
stepstep in the variables
primalValuethe value of the blocking component of the primal variables s.
primalStepthe corresponding value of the blocking component of the primal step variables b->s.
dualValuethe value of the blocking component of the dual variables z.
dualStepthe corresponding value of the blocking component of the dual step variables b->z.
firstOrSecond1 if the primal step is blocking, 2 if the dual step is block, 0 if no step is blocking.
See also
stepbound

Implemented in NlpGenVars.

virtual double Variables::infnorm ( )
pure virtual

compute the inf-norm of the variables

Implemented in NlpGenVars.

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 NlpGenVars.

virtual void Variables::mergeNTstep ( Variables Nstep,
Variables Tstep,
Variables Curr_Iter,
Residuals res_in 
)
pure virtual

Implemented in NlpGenVars.

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 NlpGenVars.

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 NlpGenVars.

virtual void Variables::negate ( )
pure virtual

negate the value of all the variables in this structure

Implemented in NlpGenVars.

virtual double Variables::onenorm ( )
pure virtual

compute the 1-norm of the variables

Implemented in NlpGenVars.

void Variables::print ( )
virtual

print the variables

Reimplemented in NlpGenVars.

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 NlpGenVars.

virtual void Variables::setZero ( )
pure virtual

set all componetn to zero

Implemented in NlpGenVars.

virtual void Variables::shiftBoundVariables ( double  alpha,
double  beta 
)
pure virtual

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

Implemented in NlpGenVars.

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 NlpGenVars.

virtual double Variables::violation ( )
pure virtual

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

Implemented in NlpGenVars.

Member Data Documentation

long long Variables::nComplementaryVariables

number of complementary primal-dual variables.


The documentation for this class was generated from the following files: