Main Page | Class Hierarchy | Alphabetical List | Class List | File List | Class Members

ClpFactorization.hpp

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 
00015 class ClpMatrixBase;
00016 class ClpSimplex;
00017 class ClpNetworkBasis;
00018 
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 ( CoinIndexedVector * regionSparse,
00067                       int pivotRow,
00068                       double pivotCheck ,
00069                       bool checkBeforeModifying=false);
00071 
00079   int updateColumnFT ( CoinIndexedVector * regionSparse,
00080                        CoinIndexedVector * regionSparse2);
00081   int updateColumn ( CoinIndexedVector * regionSparse,
00082                      CoinIndexedVector * regionSparse2,
00083                      bool noPermute=false) const;
00086   int updateColumnTranspose ( CoinIndexedVector * regionSparse,
00087                               CoinIndexedVector * regionSparse2) const;
00089     
00093   void goSparse();
00095   void cleanUp();
00097   bool needToReorder() const;
00099   bool inline networkBasis() const
00100   { return (networkBasis_!=NULL);};
00102 
00104 private:
00105 
00108 
00109   ClpNetworkBasis * networkBasis_;
00111 };
00112 
00113 #endif

Generated on Wed Dec 3 14:37:25 2003 for CLP by doxygen 1.3.5