ClpDynamicExampleMatrix.hpp

Go to the documentation of this file.
00001 /* $Id: ClpDynamicExampleMatrix.hpp 1936 2013-04-09 10:29:27Z forrest $ */
00002 // Copyright (C) 2004, 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 ClpDynamicExampleMatrix_H
00007 #define ClpDynamicExampleMatrix_H
00008 
00009 
00010 #include "CoinPragma.hpp"
00011 
00012 #include "ClpDynamicMatrix.hpp"
00013 class ClpSimplex;
00033 class ClpDynamicExampleMatrix : public ClpDynamicMatrix {
00034 
00035 public:
00038 
00039      virtual void partialPricing(ClpSimplex * model, double start, double end,
00040                                  int & bestSequence, int & numberWanted);
00041 
00045      virtual void createVariable(ClpSimplex * model, int & bestSequence);
00050      virtual void packDown(const int * in, int numberToPack);
00052 
00053 
00054 
00058      ClpDynamicExampleMatrix();
00065      ClpDynamicExampleMatrix(ClpSimplex * model, int numberSets,
00066                              int numberColumns, const int * starts,
00067                              const double * lower, const double * upper,
00068                              const int * startColumn, const int * row,
00069                              const double * element, const double * cost,
00070                              const double * columnLower = NULL, const double * columnUpper = NULL,
00071                              const unsigned char * status = NULL,
00072                              const unsigned char * dynamicStatus = NULL,
00073                              int numberIds = 0, const int *ids = NULL);
00074 #if 0
00076      ClpDynamicExampleMatrix(ClpSimplex * model, int numberSets,
00077                              int numberColumns, int * starts,
00078                              const double * lower, const double * upper,
00079                              int * startColumn, int * row,
00080                              double * element, double * cost,
00081                              double * columnLower = NULL, double * columnUpper = NULL,
00082                              const unsigned char * status = NULL,
00083                              const unsigned char * dynamicStatus = NULL,
00084                              int numberIds = 0, const int *ids = NULL);
00085 #endif
00086 
00087      virtual ~ClpDynamicExampleMatrix();
00089 
00093      ClpDynamicExampleMatrix(const ClpDynamicExampleMatrix&);
00094      ClpDynamicExampleMatrix& operator=(const ClpDynamicExampleMatrix&);
00096      virtual ClpMatrixBase * clone() const ;
00098 
00100 
00101      inline CoinBigIndex * startColumnGen() const {
00102           return startColumnGen_;
00103      }
00105      inline int * rowGen() const {
00106           return rowGen_;
00107      }
00109      inline double * elementGen() const {
00110           return elementGen_;
00111      }
00113      inline double * costGen() const {
00114           return costGen_;
00115      }
00117      inline int * fullStartGen() const {
00118           return fullStartGen_;
00119      }
00121      inline int * idGen() const {
00122           return idGen_;
00123      }
00125      inline double * columnLowerGen() const {
00126           return columnLowerGen_;
00127      }
00129      inline double * columnUpperGen() const {
00130           return columnUpperGen_;
00131      }
00133      inline int numberColumns() const {
00134           return numberColumns_;
00135      }
00136      inline void setDynamicStatusGen(int sequence, DynamicStatus status) {
00137           unsigned char & st_byte = dynamicStatusGen_[sequence];
00138           st_byte = static_cast<unsigned char>(st_byte & ~7);
00139           st_byte = static_cast<unsigned char>(st_byte | status);
00140      }
00141      inline DynamicStatus getDynamicStatusGen(int sequence) const {
00142           return static_cast<DynamicStatus> (dynamicStatusGen_[sequence] & 7);
00143      }
00145      inline bool flaggedGen(int i) const {
00146           return (dynamicStatusGen_[i] & 8) != 0;
00147      }
00148      inline void setFlaggedGen(int i) {
00149           dynamicStatusGen_[i] = static_cast<unsigned char>(dynamicStatusGen_[i] | 8);
00150      }
00151      inline void unsetFlagged(int i) {
00152           dynamicStatusGen_[i] = static_cast<unsigned char>(dynamicStatusGen_[i] & ~8);
00153      }
00155 
00156 
00157 protected:
00161 
00162      int numberColumns_;
00164      CoinBigIndex * startColumnGen_;
00166      int * rowGen_;
00168      double * elementGen_;
00170      double * costGen_;
00172      int * fullStartGen_;
00174      unsigned char * dynamicStatusGen_;
00178      int * idGen_;
00180      double * columnLowerGen_;
00182      double * columnUpperGen_;
00184 };
00185 
00186 #endif
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines

Generated on 28 Aug 2015 for Cgl by  doxygen 1.6.1