/home/coin/SVN-release/CoinAll-1.1.0/Clp/src/ClpNetworkBasis.hpp

Go to the documentation of this file.
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 #include "CoinFinite.hpp"
00017 
00022 class ClpNetworkBasis {
00023 
00024 public:
00025 
00028 
00029     ClpNetworkBasis (  );
00031   ClpNetworkBasis(const ClpSimplex * model,
00032                   int numberRows, const double * pivotRegion,
00033                   const int * permuteBack,const CoinBigIndex * startColumn,
00034                   const int * numberInColumn,
00035                   const int * indexRow, const double * element);
00037   ClpNetworkBasis ( const ClpNetworkBasis &other);
00038 
00040    ~ClpNetworkBasis (  );
00042     ClpNetworkBasis & operator = ( const ClpNetworkBasis & other );
00044 
00055   int factorize ( const ClpMatrixBase * matrix, 
00056                   int rowIsBasic[], int columnIsBasic[]);
00058 
00061 
00065   int replaceColumn ( CoinIndexedVector * column,
00066                       int pivotRow);
00068 
00075   double updateColumn ( CoinIndexedVector * regionSparse, 
00076                         CoinIndexedVector * regionSparse2,
00077                         int pivotRow);
00083   int updateColumn (  CoinIndexedVector * regionSparse,
00084                       double array[] ) const;
00091   int updateColumnTranspose (  CoinIndexedVector * regionSparse,
00092                                double array[] ) const;
00094   int updateColumnTranspose (  CoinIndexedVector * regionSparse,
00095                                CoinIndexedVector * regionSparse2) const;
00097 
00098 private:
00099 
00100   // checks looks okay
00101   void check();
00102   // prints data
00103   void print();
00106 
00107   double slackValue_;
00109   int numberRows_;
00111   int numberColumns_;
00113   const ClpSimplex * model_; 
00115   int * parent_;
00117   int * descendant_;
00119   int * pivot_;
00121   int * rightSibling_;
00123   int * leftSibling_;
00125   double * sign_;
00127   int * stack_;
00129   int * permute_;
00131   int * permuteBack_;
00133   int * stack2_;
00135   int * depth_;
00137   char * mark_;
00139 };
00140 #endif

Generated on Sun Nov 14 14:06:32 2010 for Coin-All by  doxygen 1.4.7