/home/coin/SVN-release/Cbc-1.1.1/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

Generated on Thu May 15 21:59:05 2008 by  doxygen 1.4.7