- Main Page
- Modules
- Namespaces
- Classes
- Files
- Related Pages

- File List
- File Members

# /home/coin/SVN-release/Cgl-0.55.0/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
    00112   double slackValue_;
    00113 #endif
    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_;
    00144
    00145 };
    00146 #endif