# ClpNetworkBasis.hpp

Go to the documentation of this file.

    00001 /* $Id: ClpNetworkBasis.hpp 1722 2011-04-17 09:58:37Z stefan $ */
    00002 // Copyright (C) 2003, 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    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 "CoinTypes.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

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines