/build/buildd/clp-1.12.0/Clp/src/ClpDummyMatrix.hpp
Go to the documentation of this file.
00001 /* $Id: ClpDummyMatrix.hpp 1525 2010-02-26 17:27:59Z mjs $ */
00002 // Copyright (C) 2003, International Business Machines
00003 // Corporation and others.  All Rights Reserved.
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