PIPS-NLP
Public Member Functions | Protected Attributes | List of all members
SimpleVector Class Reference

#include <SimpleVector.h>

Inheritance diagram for SimpleVector:
OoqpVector IotrRefCount

Public Member Functions

 SimpleVector (int nx)
 
 SimpleVector (double *v, int nx)
 
virtual ~SimpleVector ()
 
virtual void copyIntoArray (double v[])
 
virtual void copyFromArray (double v[])
 
virtual void copyFromArray (char v[])
 
virtual void setToZero ()
 
virtual void setToConstant (double c)
 
virtual void randomize (double alpha, double beta, double *ix)
 
virtual void copyFrom (OoqpVector &v)
 
virtual double twonorm ()
 
virtual double infnorm ()
 
virtual double onenorm ()
 
virtual void min (double &m, int &index)
 
virtual void max (double &m, int &index)
 
virtual void componentMult (OoqpVector &v)
 
virtual void scalarMult (double num)
 
virtual void printSolutionToStdErr (OoqpVector &v)
 
virtual void componentDiv (OoqpVector &v)
 
virtual void writeToStream (std::ostream &out) const
 
virtual void writefToStream (std::ostream &out, const char format[]) const
 
virtual void scale (double alpha)
 
virtual void axpy (double alpha, OoqpVector &x)
 
virtual void axzpy (double alpha, OoqpVector &x, OoqpVector &z)
 
virtual void axdzpy (double alpha, OoqpVector &x, OoqpVector &z)
 
virtual void addConstant (double c)
 
virtual void gondzioProjection (double rmin, double rmax)
 
virtual double dotProductWith (OoqpVector &v)
 
virtual double shiftedDotProductWith (double alpha, OoqpVector &mystep, OoqpVector &yvec, double beta, OoqpVector &ystep)
 
virtual void negate ()
 
virtual void invert ()
 
virtual int allPositive ()
 
virtual long long numberOfNonzeros ()
 
virtual int matchesNonZeroPattern (OoqpVector &select)
 
virtual void selectNonZeros (OoqpVector &select)
 
virtual void addSomeConstants (double c, OoqpVector &select)
 
virtual void writefSomeToStream (std::ostream &out, const char format[], OoqpVector &select) const
 
virtual void axdzpy (double alpha, OoqpVector &x, OoqpVector &z, OoqpVector &select)
 
virtual int isKindOf (int kind)
 
virtual int somePositive (OoqpVector &select)
 
virtual void divideSome (OoqpVector &div, OoqpVector &select)
 
virtual double stepbound (OoqpVector &v, double maxStep)
 
virtual double findBlocking (OoqpVector &wstep_vec, OoqpVector &u_vec, OoqpVector &ustep_vec, double maxStep, double *w_elt, double *wstep_elt, double *u_elt, double *ustep_elt, int &first_or_second)
 
double * elements ()
 
virtual void print ()
 
virtual void findBlockingPD (OoqpVector &wstep_vec, OoqpVector &u_vec, OoqpVector &ustep_vec, double *w_elt, double *wstep_elt, double *u_elt, double *ustep_elt, int &first_or_second, double *alphaPri, double *alphaDual)
 
virtual double sumLog (OoqpVector *select)
 
virtual double sumPowElt (const double pow_in)
 
virtual double sumElt ()
 
virtual void MinComponentOrConstant (OoqpVector *vec_in, double minVal)
 
virtual void correctLargeVal (const double testVal, const double corVal, const int absFlag)
 
virtual void MinComponentBetween (OoqpVector *vec_in, OoqpVector *select_in=NULL)
 
virtual void setToConstantFromTo (double c, int start, int end)
 
virtual void SetComponentFromMaxXorY (OoqpVector *x_in, OoqpVector *y_in, OoqpVector *select=NULL)
 
virtual void SetComponentFromMaxXorY (OoqpVector *x_in, OoqpVector *y_in, int Start, int End, int xStart, int xEnd, int yStart, int yEnd)
 
virtual void SetComponentFromMaxXorConstant (OoqpVector *x_in, const double y_in)
 
virtual void SetComponentFromMaxXorConstant (OoqpVector *x_in, const double y_in, int Start, int End, int xStart, int xEnd)
 
virtual void copyFromFromTo (OoqpVector *vec_in, int VStart, int VEnd, int VinStart, int VinEnd)
 
virtual void copyFromArrayFromTo (double *w, int VStart, int VEnd, int Wstart, int Wend)
 
virtual void copyIntoArrayFromTo (double *w, int VStart, int VEnd, int Wstart, int Wend)
 
virtual void absVal (OoqpVector *vec_in)
 
virtual void copyIntoArrayWithIndex_AggVarCon (double *ResultArray, const int *vecmap, const int _length, bool isVar=true)
 
double & operator[] (int i)
 
const double & operator[] (int i) const
 
- Public Member Functions inherited from OoqpVector
long long length () const
 
 OoqpVector (int n_=0)
 
virtual ~OoqpVector ()
 
double Norm (const int Norm_Type, OoqpVector *vec2=NULL)
 
double Norm (const int Norm_Type, const double norm1, const double norm2)
 
- Public Member Functions inherited from IotrRefCount
int refs ()
 
 IotrRefCount ()
 

Protected Attributes

int preserveVec
 
double * v
 

Additional Inherited Members

- Static Public Member Functions inherited from IotrRefCount
static void release (IotrRefCount **obj)
 
static void addRef (IotrRefCount *const *obj)
 
- Public Attributes inherited from OoqpVector
int n
 
- Static Public Attributes inherited from IotrRefCount
static int instances = 0
 
- Protected Member Functions inherited from IotrRefCount
virtual ~IotrRefCount ()
 

Detailed Description

Simple sequential vectors with element access.

Constructor & Destructor Documentation

SimpleVector::SimpleVector ( int  nx)
SimpleVector::SimpleVector ( double *  v,
int  nx 
)
SimpleVector::~SimpleVector ( )
virtual

Member Function Documentation

void SimpleVector::absVal ( OoqpVector vec_in)
virtual

Return the absolute value

Implements OoqpVector.

void SimpleVector::addConstant ( double  c)
virtual

Add c to the elements of this OoqpVector object

Implements OoqpVector.

void SimpleVector::addSomeConstants ( double  c,
OoqpVector select 
)
virtual

Add the constant c to some of the elements of this OoqpVector

Parameters
cThe constant to be added
selecta mask OoqpVector. The constant c is added to an element of this OoqpVector only if the corresponding element of select is non-zero.

Implements OoqpVector.

int SimpleVector::allPositive ( )
virtual

True if all elements of this OoqpVector are positive.

Implements OoqpVector.

void SimpleVector::axdzpy ( double  alpha,
OoqpVector x,
OoqpVector z 
)
virtual

this += alpha * x / z

Implements OoqpVector.

void SimpleVector::axdzpy ( double  alpha,
OoqpVector x,
OoqpVector z,
OoqpVector select 
)
virtual

this += alpha * x / z

Parameters
selectonly perform the division on elements of x and z if the corresponding element of select is non-zero. Generally we avoid performing the division if we know that it will result in division by zero. The OoqpVector select may be x, z or a third OoqpVector.

Implements OoqpVector.

void SimpleVector::axpy ( double  alpha,
OoqpVector x 
)
virtual

this += alpha * x

Implements OoqpVector.

void SimpleVector::axzpy ( double  alpha,
OoqpVector x,
OoqpVector z 
)
virtual

this += alpha * x * z

Implements OoqpVector.

void SimpleVector::componentDiv ( OoqpVector v)
virtual

Divide the components of this OoqpVector by the components of v.

Implements OoqpVector.

void SimpleVector::componentMult ( OoqpVector v)
virtual

Multiply the components of this OoqpVector by the components of v.

Implements OoqpVector.

void SimpleVector::copyFrom ( OoqpVector v)
virtual

Copy the elements of v into this OoqpVector object.

Implements OoqpVector.

void SimpleVector::copyFromArray ( double  v[])
virtual

Copy the elements of the C-style array v into this OoqpVector.

Implements OoqpVector.

void SimpleVector::copyFromArray ( char  v[])
virtual

Copy the elements of the C-style char array v into this OoqpVector.

Implements OoqpVector.

void SimpleVector::copyFromArrayFromTo ( double *  w,
int  VStart,
int  VEnd,
int  Wstart,
int  Wend 
)
virtual

Implements OoqpVector.

void SimpleVector::copyFromFromTo ( OoqpVector vec_in,
int  VStart,
int  VEnd,
int  VinStart,
int  VinEnd 
)
virtual

Implements OoqpVector.

void SimpleVector::copyIntoArray ( double  v[])
virtual

Copy the elements of this OoqpVector into the C-style array v.

Implements OoqpVector.

void SimpleVector::copyIntoArrayFromTo ( double *  w,
int  VStart,
int  VEnd,
int  Wstart,
int  Wend 
)
virtual
void SimpleVector::copyIntoArrayWithIndex_AggVarCon ( double *  ResultArray,
const int *  vecmap,
const int  _length,
bool  isVar = true 
)
virtual

Reimplemented from OoqpVector.

void SimpleVector::correctLargeVal ( const double  testVal,
const double  corVal,
const int  absFlag 
)
virtual

Implements OoqpVector.

void SimpleVector::divideSome ( OoqpVector div,
OoqpVector select 
)
virtual

Divide selected elements of this OoqpVector by the corresponding element in div.

Parameters
divIf element i of this OoqpVector is selected, then it will be divided by element i of div.
selectPerform division on elements of this OoqpVector only if the corresponding element in select is non-zero

Implements OoqpVector.

double SimpleVector::dotProductWith ( OoqpVector v)
virtual

Return the dot product of this OoqpVector with v

Implements OoqpVector.

double* SimpleVector::elements ( )
inline

Returns a pointer to the elemens of this vector.

double SimpleVector::findBlocking ( OoqpVector wstep_vec,
OoqpVector u_vec,
OoqpVector ustep_vec,
double  maxStep,
double *  w_elt,
double *  wstep_elt,
double *  u_elt,
double *  ustep_elt,
int &  first_or_second 
)
virtual

Return the largest value of alpha in the interval [0,1] for which: this + alpha * wstep_vec >= 0 and u_vec + alpha * ustep_vec >= 0. Also return the components this[i], wstep_vec[i], u_vec[i], ustep_vec[i], where i is the index of the "blocking" component - the one that limits the step length to alpha. Also return first_or_second=1 if the blocking component is in "this", and first_or_second=2 if the blocking component is in u_vec.

Implements OoqpVector.

void SimpleVector::findBlockingPD ( OoqpVector wstep_vec,
OoqpVector u_vec,
OoqpVector ustep_vec,
double *  w_elt,
double *  wstep_elt,
double *  u_elt,
double *  ustep_elt,
int &  first_or_second,
double *  alphaPri,
double *  alphaDual 
)
virtual

Implements OoqpVector.

void SimpleVector::gondzioProjection ( double  rmin,
double  rmax 
)
virtual

perform the projection operation required by Gondzio algorithm: replace each component of the vector v by vp_i - v_i, where vp_i is the projection of v_i onto the box [rmin, rmax]. Then if the resulting value is less than -rmax, replace it by -rmax.

Implements OoqpVector.

double SimpleVector::infnorm ( )
virtual

Return the infinity norm of this OoqpVector object.

Implements OoqpVector.

void SimpleVector::invert ( )
virtual

Invert (1/x) the elements of this OoqpVector.

Implements OoqpVector.

int SimpleVector::isKindOf ( int  kind)
virtual

True if this OoqpVector identifies itself as having the type kind.

Classes overriding this method must call the inherited version, so that the class hierarchy is supported.

Implements OoqpVector.

int SimpleVector::matchesNonZeroPattern ( OoqpVector select)
virtual

True if this OoqpVector has the same non-zero pattern as select.

Implements OoqpVector.

void SimpleVector::max ( double &  m,
int &  index 
)
virtual
void SimpleVector::min ( double &  m,
int &  index 
)
virtual

Return the minimum value in this vector, and the index at which it occurs.

Implements OoqpVector.

void SimpleVector::MinComponentBetween ( OoqpVector vec_in,
OoqpVector select_in = NULL 
)
virtual

Implements OoqpVector.

void SimpleVector::MinComponentOrConstant ( OoqpVector vec_in,
double  minVal 
)
virtual

Implements OoqpVector.

void SimpleVector::negate ( )
virtual

Negate all the elements of this OoqpVector object.

Implements OoqpVector.

long long SimpleVector::numberOfNonzeros ( )
virtual

Return the number of non-zero elements in this OoqpVector.

Implements OoqpVector.

double SimpleVector::onenorm ( )
virtual

Return the one norm of this OoqpVector object.

Implements OoqpVector.

double& SimpleVector::operator[] ( int  i)
inline

Access the individual elements of this vector.

const double& SimpleVector::operator[] ( int  i) const
inline
void SimpleVector::print ( )
virtual

Implements OoqpVector.

void SimpleVector::printSolutionToStdErr ( OoqpVector v)
virtual
void SimpleVector::randomize ( double  alpha,
double  beta,
double *  ix 
)
virtual

Fill this OoqpVector with random elements

Parameters
alpha
betathe elements will be in the interval [alpha, beta]
ixan aribitray number used to seed the random number generator

Implements OoqpVector.

void SimpleVector::scalarMult ( double  num)
virtual

Write the components of this OoqpVector, one element per line, to the stream out. Multiply the components of this OoqpVector by num.

Implements OoqpVector.

void SimpleVector::scale ( double  alpha)
virtual

Scale each element of this OoqpVector by the constant alpha

Implements OoqpVector.

void SimpleVector::selectNonZeros ( OoqpVector select)
virtual

Set each element of this OoqpVector to zero if the corresponding element in select is zero.

Implements OoqpVector.

void SimpleVector::SetComponentFromMaxXorConstant ( OoqpVector x_in,
const double  y_in 
)
virtual

Implements OoqpVector.

void SimpleVector::SetComponentFromMaxXorConstant ( OoqpVector x_in,
const double  y_in,
int  Start,
int  End,
int  xStart,
int  xEnd 
)
virtual

Implements OoqpVector.

void SimpleVector::SetComponentFromMaxXorY ( OoqpVector x_in,
OoqpVector y_in,
OoqpVector select = NULL 
)
virtual

Implements OoqpVector.

void SimpleVector::SetComponentFromMaxXorY ( OoqpVector x_in,
OoqpVector y_in,
int  Start,
int  End,
int  xStart,
int  xEnd,
int  yStart,
int  yEnd 
)
virtual

Implements OoqpVector.

void SimpleVector::setToConstant ( double  c)
virtual

Set all elements of this OoqpVector to the constant value c

Implements OoqpVector.

void SimpleVector::setToConstantFromTo ( double  c,
int  start,
int  end 
)
virtual

Implements OoqpVector.

void SimpleVector::setToZero ( )
virtual

Set all elements of this OoqpVector to zero.

Implements OoqpVector.

double SimpleVector::shiftedDotProductWith ( double  alpha,
OoqpVector mystep,
OoqpVector yvec,
double  beta,
OoqpVector ystep 
)
virtual

Return the inner product <this + alpha * mystep, yvec + beta * ystep >

Implements OoqpVector.

int SimpleVector::somePositive ( OoqpVector select)
virtual

True if selected elements of this OoqpVector are positive

Parameters
selectEach element of this OoqpVector must be positive if the corresponding element of select is non-zero.

Implements OoqpVector.

double SimpleVector::stepbound ( OoqpVector v,
double  maxStep 
)
virtual

Return the largest value of alpha in the interval [0, maxStep] for which: this + alpha * v >= 0. Set firstBlocking to be the "blocking" index i - the one that limits the step length to alpha.

Implements OoqpVector.

double SimpleVector::sumElt ( )
virtual

Implements OoqpVector.

double SimpleVector::sumLog ( OoqpVector select)
virtual

Implements OoqpVector.

double SimpleVector::sumPowElt ( const double  pow_in)
virtual

Implements OoqpVector.

double SimpleVector::twonorm ( )
virtual

Implements OoqpVector.

void SimpleVector::writefSomeToStream ( std::ostream &  out,
const char  format[],
OoqpVector select 
) const
virtual

Write some elements of this OoqpVector to a stream, subject to a format.

Parameters
outa C++-style output stream
formata string used to format the output. The substring %{index} will be substituted by the index of the current element and the string %{value} will be substituted with the element's value.
selecta mask OoqpVector. An element if this OoqpVector is written only if the corresponding element of selec is non-zero.

Implements OoqpVector.

void SimpleVector::writefToStream ( std::ostream &  out,
const char  format[] 
) const
virtual

Write the components of this OoqpVector to a stream, subject to a format.

Parameters
outa C++-style output stream
formata string used to format the output. The substring %{index} will be substituted by the index of the current element and the string %{value} will be substituted with the element's value.

Implements OoqpVector.

void SimpleVector::writeToStream ( std::ostream &  out) const
virtual

Implements OoqpVector.

Member Data Documentation

int SimpleVector::preserveVec
protected
double* SimpleVector::v
protected

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