• Main Page
  • Classes
  • Files
  • File List
  • File Members

/build/buildd/clp-1.11.1/Clp/src/ClpNetworkBasis.hpp

Go to the documentation of this file.
00001 /* $Id: ClpNetworkBasis.hpp 1458 2009-11-05 12:34:07Z forrest $ */
00002 // Copyright (C) 2003, International Business Machines
00003 // Corporation and others.  All Rights Reserved.
00004 
00005 /* 
00006    Authors
00007    
00008    John Forrest
00009 
00010  */
00011 #ifndef ClpNetworkBasis_H
00012 #define ClpNetworkBasis_H
00013 
00014 class ClpMatrixBase;
00015 class CoinIndexedVector;
00016 class ClpSimplex;
00017 #include "CoinFinite.hpp"
00018 #ifndef COIN_FAST_CODE
00019 #define COIN_FAST_CODE
00020 #endif
00021 
00026 class ClpNetworkBasis {
00027 
00028 public:
00029 
00032 
00033     ClpNetworkBasis (  );
00035   ClpNetworkBasis(const ClpSimplex * model,
00036                   int numberRows, const CoinFactorizationDouble * pivotRegion,
00037                   const int * permuteBack,const CoinBigIndex * startColumn,
00038                   const int * numberInColumn,
00039                   const int * indexRow, const CoinFactorizationDouble * element);
00041   ClpNetworkBasis ( const ClpNetworkBasis &other);
00042 
00044    ~ClpNetworkBasis (  );
00046     ClpNetworkBasis & operator = ( const ClpNetworkBasis & other );
00048 
00059   int factorize ( const ClpMatrixBase * matrix, 
00060                   int rowIsBasic[], int columnIsBasic[]);
00062 
00065 
00069   int replaceColumn ( CoinIndexedVector * column,
00070                       int pivotRow);
00072 
00079   double updateColumn ( CoinIndexedVector * regionSparse, 
00080                         CoinIndexedVector * regionSparse2,
00081                         int pivotRow);
00087   int updateColumn (  CoinIndexedVector * regionSparse,
00088                       double array[] ) const;
00095   int updateColumnTranspose (  CoinIndexedVector * regionSparse,
00096                                double array[] ) const;
00098   int updateColumnTranspose (  CoinIndexedVector * regionSparse,
00099                                CoinIndexedVector * regionSparse2) const;
00101 
00102 private:
00103 
00104   // checks looks okay
00105   void check();
00106   // prints data
00107   void print();
00110 #ifndef COIN_FAST_CODE
00111 
00112   double slackValue_;
00113 #endif
00114 
00115   int numberRows_;
00117   int numberColumns_;
00119   const ClpSimplex * model_; 
00121   int * parent_;
00123   int * descendant_;
00125   int * pivot_;
00127   int * rightSibling_;
00129   int * leftSibling_;
00131   double * sign_;
00133   int * stack_;
00135   int * permute_;
00137   int * permuteBack_;
00139   int * stack2_;
00141   int * depth_;
00143   char * mark_;
00145 };
00146 #endif

Generated on Fri Aug 20 2010 06:29:28 by  doxygen 1.7.1