SoPlex

Sequential object-oriented simPlex

UnitVectorBase< R > Class Template Reference

Sparse vector $e_i$.A UnitVectorBase is an SVectorBase that can take only one nonzero value with value 1 but arbitrary index. More...

#include <unitvectorbase.h>

Inheritance diagram for UnitVectorBase< R >:

Public Member Functions

Access
R value (int n) const
 returns value = 1
 
Constructors / destructors
 UnitVectorBase (int i=0)
 construct i 'th unit vector.
 
 UnitVectorBase (const UnitVectorBase< R > &rhs)
 copy constructor
 
UnitVectorBase< R > & operator= (const UnitVectorBase< R > &rhs)
 assignment
 
 ~UnitVectorBase ()
 destructor
 
Miscellaneous
bool isConsistent () const
 consistency check
 
- Public Member Functions inherited from SVectorBase< R >
int size () const
 Number of used indices.
 
int max () const
 Maximal number of indices.
 
int dim () const
 Dimension of the vector defined as maximal index + 1.
 
int number (int i) const
 Number of index i.
 
R operator[] (int i) const
 Value to index i.
 
Nonzero< R > & element (int n)
 Reference to the n 'th nonzero element.
 
const Nonzero< R > & element (int n) const
 The n 'th nonzero element.
 
int & index (int n)
 Reference to index of n 'th nonzero.
 
int index (int n) const
 Index of n 'th nonzero.
 
R & value (int n)
 Reference to value of n 'th nonzero.
 
const R & value (int n) const
 Value of n 'th nonzero.
 
void add (int i, const R &v)
 Append one nonzero (i,v).
 
void add (int i)
 Append one uninitialized nonzero.
 
void add (const SVectorBase &sv)
 Append nonzeros of sv.
 
void add (int n, const int i[], const R v[])
 Append n nonzeros.
 
template<class S >
void add (int n, const int i[], const S v[])
 Append n nonzeros.
 
void add (int n, const Nonzero< R > e[])
 Append n nonzeros.
 
void remove (int n, int m)
 Remove nonzeros n thru m.
 
void remove (int n)
 Remove n 'th nonzero.
 
void clear ()
 Remove all indices.
 
void sort ()
 Sort nonzeros to increasing indices.
 
R maxAbs () const
 Maximum absolute value, i.e., infinity norm.
 
R minAbs () const
 Minimum absolute value.
 
Real length () const
 Floating point approximation of euclidian norm (without any approximation guarantee).
 
R length2 () const
 Squared norm.
 
SVectorBase< R > & operator*= (const R &x)
 Scaling.
 
R operator* (const VectorBase< R > &w) const
 Inner product.
 
template<class S >
R operator* (const SVectorBase< S > &w) const
 inner product for sparse vectors
 
 SVectorBase (int n=0, Nonzero< R > *p_mem=0)
 Default constructor.
 
template<class S >
SVectorBase< R > & operator= (const VectorBase< S > &vec)
 Assignment operator.
 
SVectorBase< R > & operator= (const SVectorBase< R > &sv)
 Assignment operator.
 
template<class S >
SVectorBase< R > & operator= (const SVectorBase< S > &sv)
 Assignment operator.
 
template<class S >
SVectorBase< R > & assignArray (const S *rowValues, const int *rowIndices, int rowSize)
 Assignment operator.
 
template<class S >
SVectorBase< R > & operator= (const SSVectorBase< S > &sv)
 Assignment operator.
 
Nonzero< R > * mem () const
 get pointer to internal memory.
 
void set_size (int s)
 Set size of the vector.
 
void set_max (int m)
 Set the maximum number of nonzeros in the vector.
 
void setMem (int n, Nonzero< R > *elmem)
 Set the memory area where the nonzeros will be stored.
 
bool isConsistent () const
 Consistency check.
 

Private Attributes

Data
SVectorBase< R >::Element themem
 memory for sparse vector entry
 

Additional Inherited Members

- Public Types inherited from SVectorBase< R >
typedef Nonzero< R > Element
 

Detailed Description

template<class R>
class soplex::UnitVectorBase< R >

Sparse vector $e_i$.

A UnitVectorBase is an SVectorBase that can take only one nonzero value with value 1 but arbitrary index.

Todo:
Several SVectorBase modification methods are still accessible for UnitVector. They might be used to change the vector.
Todo:
UnitVectorBase memory management must be changed when SVectorBase is redesigned.

Definition at line 44 of file unitvectorbase.h.

Constructor & Destructor Documentation

UnitVectorBase ( int  i = 0)
explicit

construct i 'th unit vector.

Definition at line 75 of file unitvectorbase.h.

References SVectorBase< R >::add(), and UnitVectorBase< R >::isConsistent().

UnitVectorBase ( const UnitVectorBase< R > &  rhs)

copy constructor

Definition at line 83 of file unitvectorbase.h.

References UnitVectorBase< R >::isConsistent(), and UnitVectorBase< R >::themem.

destructor

Definition at line 102 of file unitvectorbase.h.

Member Function Documentation

UnitVectorBase<R>& operator= ( const UnitVectorBase< R > &  rhs)

assignment

Definition at line 91 of file unitvectorbase.h.

References UnitVectorBase< R >::isConsistent(), and UnitVectorBase< R >::themem.

R value ( int  n) const

returns value = 1

Precondition
n must be 0.

Definition at line 63 of file unitvectorbase.h.

Member Data Documentation

SVectorBase<R>::Element themem
private

memory for sparse vector entry

Definition at line 51 of file unitvectorbase.h.

Referenced by UnitVectorBase< R >::isConsistent(), UnitVectorBase< R >::operator=(), and UnitVectorBase< R >::UnitVectorBase().