Go to the documentation of this file.
6 #ifndef CoinPackedVectorBase_H
7 #define CoinPackedVectorBase_H
96 const char * className = NULL)
const;
139 template <
class FloatEqual>
bool
148 std::map<int,double> mv;
153 mv.insert(std::make_pair(inds[i], elems[i]));
156 std::map<int,double> mvRhs;
160 mvRhs.insert(std::make_pair(inds[i], elems[i]));
163 std::map<int,double>::const_iterator mvI = mv.begin();
164 std::map<int,double>::const_iterator mvIlast = mv.end();
165 std::map<int,double>::const_iterator mvIrhs = mvRhs.begin();
166 while (mvI != mvIlast) {
167 if (mvI->first != mvIrhs->first || ! eq(mvI->second, mvIrhs->second))
237 std::set<int> *
indexSet(
const char* methodName = NULL,
238 const char * className = NULL)
const;
bool testForDuplicateIndex() const
Returns true if the vector should be tested for duplicate indices when they can occur.
int findIndex(int i) const
Return the position of the i'th element of the full storage vector.
std::set< int > * indexSetPtr_
Store the indices in a set.
void setTestForDuplicateIndex(bool test) const
Set to the argument value whether to test for duplicate indices in the vector whenever they can occur...
bool testForDuplicateIndex_
True if the vector should be tested for duplicate indices when they can occur.
int compare(const CoinPackedVectorBase &rhs) const
This method establishes an ordering on packed vectors.
void clearIndexSet() const
Delete the indexSet.
int minIndex_
Contains minimum index value or infinity.
double normSquare() const
Return the square of the 2-norm of the vector.
int getMaxIndex() const
Get value of maximum index.
double twoNorm() const
Return the 2-norm of the vector.
double sum() const
Sum elements of vector.
double operator[](int i) const
Access the i'th element of the full storage vector.
void duplicateIndex(const char *methodName=NULL, const char *className=NULL) const
Throw an exception if there are duplicate indices.
double oneNorm() const
Return the 1-norm of the vector.
bool operator==(const CoinPackedVectorBase &rhs) const
Equal.
bool isExistingIndex(int i) const
Return true if the i'th element of the full storage vector exists in the packed storage vector.
CoinPackedVectorBase & operator=(const CoinPackedVectorBase &)
This class provides const access to packed vectors, so there's no need to provide an assignment opera...
void findMaxMinIndices() const
Find Maximum and Minimum Indices.
int getMinIndex() const
Get value of minimum index.
int maxIndex_
Contains max index value or -infinity.
std::set< int > * indexSet(const char *methodName=NULL, const char *className=NULL) const
Return indexSetPtr_ (create it if necessary).
virtual int getNumElements() const =0
Get length of indices and elements vectors.
CoinPackedVectorBase()
Default constructor.
Abstract base class for various sparse vectors.
double * denseVector(int denseSize) const
Get the vector as a dense vector.
double dotProduct(const double *dense) const
Create the dot product with a full vector.
bool operator!=(const CoinPackedVectorBase &rhs) const
Not equal.
CoinPackedVectorBase(const CoinPackedVectorBase &)
The copy constructor.
void copyMaxMinIndex(const CoinPackedVectorBase &x) const
double infNorm() const
Return the infinity-norm of the vector.
bool isEquivalent(const CoinPackedVectorBase &rhs) const
bool isEquivalent(const CoinPackedVectorBase &rhs, const FloatEqual &eq) const
equivalent - If shallow packed vector A & B are equivalent, then they are still equivalent no matter ...
bool testedDuplicateIndex_
True if the vector has already been tested for duplicate indices.
void setTestsOff() const
Just sets test stuff false without a try etc.
void setTestForDuplicateIndexWhenTrue(bool test) const
Set to the argument value whether to test for duplicate indices in the vector whenever they can occur...
virtual const int * getIndices() const =0
Get indices of elements.
virtual const double * getElements() const =0
Get element values.
virtual ~CoinPackedVectorBase()
Destructor.