Clp trunk
ClpDummyMatrix.hpp
Go to the documentation of this file.
00001 /* $Id$ */
00002 // Copyright (C) 2003, International Business Machines
00003 // Corporation and others.  All Rights Reserved.
00004 // This code is licensed under the terms of the Eclipse Public License (EPL).
00005 
00006 #ifndef ClpDummyMatrix_H
00007 #define ClpDummyMatrix_H
00008 
00009 
00010 #include "CoinPragma.hpp"
00011 
00012 #include "ClpMatrixBase.hpp"
00013 
00020 class ClpDummyMatrix : public ClpMatrixBase {
00021 
00022 public:
00025 
00026      virtual CoinPackedMatrix * getPackedMatrix() const;
00028      virtual bool isColOrdered() const {
00029           return true;
00030      }
00032      virtual  CoinBigIndex getNumElements() const {
00033           return numberElements_;
00034      }
00036      virtual int getNumCols() const {
00037           return numberColumns_;
00038      }
00040      virtual int getNumRows() const {
00041           return numberRows_;
00042      }
00043 
00048      virtual const double * getElements() const;
00054      virtual const int * getIndices() const;
00055 
00056      virtual const CoinBigIndex * getVectorStarts() const;
00058      virtual const int * getVectorLengths() const;
00059 
00061      virtual void deleteCols(const int numDel, const int * indDel);
00063      virtual void deleteRows(const int numDel, const int * indDel);
00065      virtual ClpMatrixBase * reverseOrderedCopy() const;
00067      virtual CoinBigIndex countBasis(const int * whichColumn,
00068                                      int & numberColumnBasic);
00070      virtual void fillBasis(ClpSimplex * model,
00071                             const int * whichColumn,
00072                             int & numberColumnBasic,
00073                             int * row, int * start,
00074                             int * rowCount, int * columnCount,
00075                             CoinFactorizationDouble * element);
00078      virtual void unpack(const ClpSimplex * model, CoinIndexedVector * rowArray,
00079                          int column) const ;
00084      virtual void unpackPacked(ClpSimplex * model,
00085                                CoinIndexedVector * rowArray,
00086                                int column) const;
00089      virtual void add(const ClpSimplex * model, CoinIndexedVector * rowArray,
00090                       int column, double multiplier) const ;
00092      virtual void add(const ClpSimplex * model, double * array,
00093                       int column, double multiplier) const;
00096      virtual void releasePackedMatrix() const {}
00098 
00104      virtual void times(double scalar,
00105                         const double * x, double * y) const;
00107      virtual void times(double scalar,
00108                         const double * x, double * y,
00109                         const double * rowScale,
00110                         const double * columnScale) const;
00114      virtual void transposeTimes(double scalar,
00115                                  const double * x, double * y) const;
00117      virtual void transposeTimes(double scalar,
00118                                  const double * x, double * y,
00119                                  const double * rowScale,
00120                                  const double * columnScale) const;
00121 
00122      using ClpMatrixBase::transposeTimes ;
00126      virtual void transposeTimes(const ClpSimplex * model, double scalar,
00127                                  const CoinIndexedVector * x,
00128                                  CoinIndexedVector * y,
00129                                  CoinIndexedVector * z) const;
00134      virtual void subsetTransposeTimes(const ClpSimplex * model,
00135                                        const CoinIndexedVector * x,
00136                                        const CoinIndexedVector * y,
00137                                        CoinIndexedVector * z) const;
00139 
00142 
00143 
00144 
00148      ClpDummyMatrix();
00150      ClpDummyMatrix(int numberColumns, int numberRows,
00151                     int numberElements);
00153      virtual ~ClpDummyMatrix();
00155 
00159      ClpDummyMatrix(const ClpDummyMatrix&);
00161      ClpDummyMatrix(const CoinPackedMatrix&);
00162 
00163      ClpDummyMatrix& operator=(const ClpDummyMatrix&);
00165      virtual ClpMatrixBase * clone() const ;
00167 
00168 
00169 protected:
00173 
00174      int numberRows_;
00176      int numberColumns_;
00178      int numberElements_;
00179 
00181 };
00182 
00183 #endif
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Friends Defines