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

- File List
- File Members

# /home/coin/SVN-release/Clp-1.5.0/Clp/src/ClpFactorization.hpp

Go to the documentation of this file.

    00001 // Copyright (C) 2002, International Business Machines
    00002 // Corporation and others.  All Rights Reserved.
    00003 #ifndef ClpFactorization_H
    00004 #define ClpFactorization_H
    00005
    00006
    00007 #include "CoinPragma.hpp"
    00008
    00009 #include "CoinFactorization.hpp"
    00010 class ClpMatrixBase;
    00011 class ClpSimplex;
    00012 class ClpNetworkBasis;
    00013
    00019 class ClpFactorization : public CoinFactorization {
    00020
    00021 public:
    00033   int factorize (ClpSimplex * model,int solveType, bool valuesPass);
    00035
    00036
    00040    ClpFactorization();
    00042    ~ClpFactorization();
    00044
    00048    ClpFactorization(const ClpFactorization&);
    00050    ClpFactorization(const CoinFactorization&);
    00051
    00052    ClpFactorization& operator=(const ClpFactorization&);
    00054
    00055   /*  **** below here is so can use networkish basis */
    00058
    00066   int replaceColumn ( const ClpSimplex * model,
    00067                       CoinIndexedVector * regionSparse,
    00068                       CoinIndexedVector * tableauColumn,
    00069                       int pivotRow,
    00070                       double pivotCheck ,
    00071                       bool checkBeforeModifying=false);
    00073
    00081   int updateColumnFT ( CoinIndexedVector * regionSparse,
    00082                        CoinIndexedVector * regionSparse2);
    00083   int updateColumn ( CoinIndexedVector * regionSparse,
    00084                      CoinIndexedVector * regionSparse2,
    00085                      bool noPermute=false) const;
    00087   int updateColumnForDebug ( CoinIndexedVector * regionSparse,
    00088                      CoinIndexedVector * regionSparse2,
    00089                      bool noPermute=false) const;
    00092   int updateColumnTranspose ( CoinIndexedVector * regionSparse,
    00093                               CoinIndexedVector * regionSparse2) const;
    00095
    00099   void goSparse();
    00101   void cleanUp();
    00103   bool needToReorder() const;
    00104 #ifndef SLIM_CLP
    00106   inline bool networkBasis() const
    00107   { return (networkBasis_!=NULL);}
    00108 #else
    00110   inline bool networkBasis() const
    00111   { return false;}
    00112 #endif
    00114   void getWeights(int * weights) const;
    00115
    00116
    00118 private:
    00119
    00122
    00123 #ifndef SLIM_CLP
    00124   ClpNetworkBasis * networkBasis_;
    00125 #endif
    00126
    00127 };
    00128
    00129 #endif