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

ClpCholeskyBase.hpp

00001 // Copyright (C) 2003, International Business Machines
00002 // Corporation and others.  All Rights Reserved.
00003 #ifndef ClpCholeskyBase_H
00004 #define ClpCholeskyBase_H
00005 
00006 #include "CoinPragma.hpp"
00007 
00008 class ClpInterior;
00009 
00015 class ClpCholeskyBase  {
00016   
00017 public:
00022   virtual int order(ClpInterior * model) = 0;
00024   virtual int factorize(const double * diagonal, int * rowsDropped) =0;
00026   virtual void solve (double * region) const = 0;
00028 
00031 
00032   inline int status() const 
00033   {return status_;};
00035   inline int numberRowsDropped() const 
00036   {return numberRowsDropped_;};
00038   void resetRowsDropped();
00040   inline char * rowsDropped() const 
00041   {return rowsDropped_;};
00043   inline double choleskyCondition() const 
00044   {return choleskyCondition_;};
00046   inline int rank() const 
00047   {return numberRows_-numberRowsDropped_;};
00049   
00050   
00051 protected:
00052 
00058    ClpCholeskyBase();
00060 public:
00061    virtual ~ClpCholeskyBase();
00062 protected:
00063   // Copy
00064    ClpCholeskyBase(const ClpCholeskyBase&);
00065   // Assignment
00066    ClpCholeskyBase& operator=(const ClpCholeskyBase&);
00068 
00069 
00070 
00071 public:
00072   virtual ClpCholeskyBase * clone() const = 0;
00073 protected:
00074  
00076   inline int type() const
00077   { return type_;};
00079   void setType(int type) {type_=type;};
00081    
00082     
00083 protected:
00087 
00088    int type_;
00090   double pivotTolerance_;
00092   double zeroTolerance_;
00094   double choleskyCondition_;
00096   ClpInterior * model_;
00098   int numberTrials_;
00100   int numberRows_;
00102   int status_;
00104   char * rowsDropped_;
00106   int * permuteIn_;
00108   int * permuteOut_;
00110   int numberRowsDropped_;
00112 };
00113 
00114 #endif

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