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 { return true; }
00028 virtual CoinBigIndex getNumElements() const
00029 { return numberElements_; }
00031 virtual int getNumCols() const { return numberColumns_; }
00033 virtual int getNumRows() const { return numberRows_; }
00034
00039 virtual const double * getElements() const;
00045 virtual const int * getIndices() const;
00046
00047 virtual const CoinBigIndex * getVectorStarts() const;
00049 virtual const int * getVectorLengths() const;
00050
00052 virtual void deleteCols(const int numDel, const int * indDel);
00054 virtual void deleteRows(const int numDel, const int * indDel);
00056 virtual ClpMatrixBase * reverseOrderedCopy() const;
00058 virtual CoinBigIndex countBasis(const int * whichColumn,
00059 int & numberColumnBasic);
00061 virtual void fillBasis(ClpSimplex * model,
00062 const int * whichColumn,
00063 int & numberColumnBasic,
00064 int * row, int * start,
00065 int * rowCount, int * columnCount,
00066 CoinFactorizationDouble * element);
00069 virtual void unpack(const ClpSimplex * model,CoinIndexedVector * rowArray,
00070 int column) const ;
00075 virtual void unpackPacked(ClpSimplex * model,
00076 CoinIndexedVector * rowArray,
00077 int column) const;
00080 virtual void add(const ClpSimplex * model,CoinIndexedVector * rowArray,
00081 int column, double multiplier) const ;
00083 virtual void add(const ClpSimplex * model,double * array,
00084 int column, double multiplier) const;
00087 virtual void releasePackedMatrix() const {}
00089
00095 virtual void times(double scalar,
00096 const double * x, double * y) const;
00098 virtual void times(double scalar,
00099 const double * x, double * y,
00100 const double * rowScale,
00101 const double * columnScale) const;
00105 virtual void transposeTimes(double scalar,
00106 const double * x, double * y) const;
00108 virtual void transposeTimes(double scalar,
00109 const double * x, double * y,
00110 const double * rowScale,
00111 const double * columnScale) const;
00112
00113 using ClpMatrixBase::transposeTimes ;
00117 virtual void transposeTimes(const ClpSimplex * model, double scalar,
00118 const CoinIndexedVector * x,
00119 CoinIndexedVector * y,
00120 CoinIndexedVector * z) const;
00125 virtual void subsetTransposeTimes(const ClpSimplex * model,
00126 const CoinIndexedVector * x,
00127 const CoinIndexedVector * y,
00128 CoinIndexedVector * z) const;
00130
00133
00134
00135
00139 ClpDummyMatrix();
00141 ClpDummyMatrix(int numberColumns, int numberRows,
00142 int numberElements);
00144 virtual ~ClpDummyMatrix();
00146
00150 ClpDummyMatrix(const ClpDummyMatrix&);
00152 ClpDummyMatrix(const CoinPackedMatrix&);
00153
00154 ClpDummyMatrix& operator=(const ClpDummyMatrix&);
00156 virtual ClpMatrixBase * clone() const ;
00158
00159
00160 protected:
00164
00165 int numberRows_;
00167 int numberColumns_;
00169 int numberElements_;
00170
00172 };
00173
00174 #endif