Go to the documentation of this file.00001
00002
00003
00004 #ifndef ClpDummyMatrix_H
00005 #define ClpDummyMatrix_H
00006
00007
00008 #include "CoinPragma.hpp"
00009
00010 #include "ClpMatrixBase.hpp"
00011
00018 class ClpDummyMatrix : public ClpMatrixBase {
00019
00020 public:
00023
00024 virtual CoinPackedMatrix * getPackedMatrix() const;
00026 virtual bool isColOrdered() const {
00027 return true;
00028 }
00030 virtual CoinBigIndex getNumElements() const {
00031 return numberElements_;
00032 }
00034 virtual int getNumCols() const {
00035 return numberColumns_;
00036 }
00038 virtual int getNumRows() const {
00039 return numberRows_;
00040 }
00041
00046 virtual const double * getElements() const;
00052 virtual const int * getIndices() const;
00053
00054 virtual const CoinBigIndex * getVectorStarts() const;
00056 virtual const int * getVectorLengths() const;
00057
00059 virtual void deleteCols(const int numDel, const int * indDel);
00061 virtual void deleteRows(const int numDel, const int * indDel);
00063 virtual ClpMatrixBase * reverseOrderedCopy() const;
00065 virtual CoinBigIndex countBasis(const int * whichColumn,
00066 int & numberColumnBasic);
00068 virtual void fillBasis(ClpSimplex * model,
00069 const int * whichColumn,
00070 int & numberColumnBasic,
00071 int * row, int * start,
00072 int * rowCount, int * columnCount,
00073 CoinFactorizationDouble * element);
00076 virtual void unpack(const ClpSimplex * model, CoinIndexedVector * rowArray,
00077 int column) const ;
00082 virtual void unpackPacked(ClpSimplex * model,
00083 CoinIndexedVector * rowArray,
00084 int column) const;
00087 virtual void add(const ClpSimplex * model, CoinIndexedVector * rowArray,
00088 int column, double multiplier) const ;
00090 virtual void add(const ClpSimplex * model, double * array,
00091 int column, double multiplier) const;
00094 virtual void releasePackedMatrix() const {}
00096
00102 virtual void times(double scalar,
00103 const double * x, double * y) const;
00105 virtual void times(double scalar,
00106 const double * x, double * y,
00107 const double * rowScale,
00108 const double * columnScale) const;
00112 virtual void transposeTimes(double scalar,
00113 const double * x, double * y) const;
00115 virtual void transposeTimes(double scalar,
00116 const double * x, double * y,
00117 const double * rowScale,
00118 const double * columnScale) const;
00119
00120 using ClpMatrixBase::transposeTimes ;
00124 virtual void transposeTimes(const ClpSimplex * model, double scalar,
00125 const CoinIndexedVector * x,
00126 CoinIndexedVector * y,
00127 CoinIndexedVector * z) const;
00132 virtual void subsetTransposeTimes(const ClpSimplex * model,
00133 const CoinIndexedVector * x,
00134 const CoinIndexedVector * y,
00135 CoinIndexedVector * z) const;
00137
00140
00141
00142
00146 ClpDummyMatrix();
00148 ClpDummyMatrix(int numberColumns, int numberRows,
00149 int numberElements);
00151 virtual ~ClpDummyMatrix();
00153
00157 ClpDummyMatrix(const ClpDummyMatrix&);
00159 ClpDummyMatrix(const CoinPackedMatrix&);
00160
00161 ClpDummyMatrix& operator=(const ClpDummyMatrix&);
00163 virtual ClpMatrixBase * clone() const ;
00165
00166
00167 protected:
00171
00172 int numberRows_;
00174 int numberColumns_;
00176 int numberElements_;
00177
00179 };
00180
00181 #endif