00001 // Copyright (C) 2000, International Business Machines 00002 // Corporation and others. All Rights Reserved. 00003 #ifndef CoinShallowPackedVector_H 00004 #define CoinShallowPackedVector_H 00005 00006 #if defined(_MSC_VER) 00007 // Turn off compiler warning about long names 00008 # pragma warning(disable:4786) 00009 #endif 00010 00011 #include "CoinError.hpp" 00012 #include "CoinPackedVectorBase.hpp" 00013 00071 class CoinShallowPackedVector : public CoinPackedVectorBase { 00072 friend void CoinShallowPackedVectorUnitTest(); 00073 00074 public: 00075 00078 00079 virtual int getNumElements() const { return nElements_; } 00081 virtual const int * getIndices() const { return indices_; } 00083 virtual const double * getElements() const { return elements_; } 00085 00088 00089 void clear(); 00091 CoinShallowPackedVector& operator=(const CoinShallowPackedVector & x); 00093 CoinShallowPackedVector& operator=(const CoinPackedVectorBase & x); 00095 void setVector(int size, const int * indices, const double * elements, 00096 bool testForDuplicateIndex = true) throw(CoinError); 00098 00102 CoinShallowPackedVector(bool testForDuplicateIndex = true); 00111 CoinShallowPackedVector(int size, 00112 const int * indices, const double * elements, 00113 bool testForDuplicateIndex = true); 00115 CoinShallowPackedVector(const CoinPackedVectorBase &); 00117 CoinShallowPackedVector(const CoinShallowPackedVector &); 00119 ~CoinShallowPackedVector() {} 00121 00122 private: 00125 00126 const int * indices_; 00128 const double * elements_; 00130 int nElements_; 00132 }; 00133 00134 //############################################################################# 00140 void 00141 CoinShallowPackedVectorUnitTest(); 00142 00143 #endif