Main Page | Class Hierarchy | Alphabetical List | Class List | File List | Class Members

ClpNetworkBasis.hpp

00001 // Copyright (C) 2003, International Business Machines
00002 // Corporation and others.  All Rights Reserved.
00003 
00004 /* 
00005    Authors
00006    
00007    John Forrest
00008 
00009  */
00010 #ifndef ClpNetworkBasis_H
00011 #define ClpNetworkBasis_H
00012 
00013 class ClpMatrixBase;
00014 class CoinIndexedVector;
00015 class ClpSimplex;
00016 
00021 class ClpNetworkBasis {
00022 
00023 public:
00024 
00027 
00028     ClpNetworkBasis (  );
00030   ClpNetworkBasis(const ClpSimplex * model,
00031                   int numberRows, const double * pivotRegion,
00032                   const int * permuteBack,const int * startColumn,
00033                   const int * numberInColumn,
00034                   const int * indexRow, const double * element);
00036   ClpNetworkBasis ( const ClpNetworkBasis &other);
00037 
00039    ~ClpNetworkBasis (  );
00041     ClpNetworkBasis & operator = ( const ClpNetworkBasis & other );
00043 
00054   int factorize ( const ClpMatrixBase * matrix, 
00055                   int rowIsBasic[], int columnIsBasic[]);
00057 
00060 
00064   int replaceColumn ( CoinIndexedVector * column,
00065                       int pivotRow);
00067 
00074   double updateColumn ( CoinIndexedVector * regionSparse, 
00075                         CoinIndexedVector * regionSparse2,
00076                         int pivotRow);
00082   int updateColumn (  CoinIndexedVector * regionSparse,
00083                       double array[] ) const;
00090   int updateColumnTranspose (  CoinIndexedVector * regionSparse,
00091                                double array[] ) const;
00093   int updateColumnTranspose (  CoinIndexedVector * regionSparse,
00094                                CoinIndexedVector * regionSparse2) const;
00096 
00097 private:
00098 
00099   // checks looks okay
00100   void check();
00101   // prints data
00102   void print();
00105 
00106   double slackValue_;
00108   int numberRows_;
00110   int numberColumns_;
00112   const ClpSimplex * model_; 
00114   int * parent_;
00116   int * descendant_;
00118   int * pivot_;
00120   int * rightSibling_;
00122   int * leftSibling_;
00124   double * sign_;
00126   int * stack_;
00128   int * permute_;
00130   int * permuteBack_;
00132   int * stack2_;
00134   int * depth_;
00136   char * mark_;
00138 };
00139 #endif

Generated on Wed Dec 3 14:37:27 2003 for CLP by doxygen 1.3.5