00001 // Copyright (C) 2004, International Business Machines 00002 // Corporation and others. All Rights Reserved. 00003 #ifndef ClpCholeskyTaucs_H 00004 #define ClpCholeskyTaucs_H 00005 #include "taucs.h" 00006 #include "ClpCholeskyBase.hpp" 00007 00008 00055 class ClpMatrixBase; 00056 class ClpCholeskyTaucs : public ClpCholeskyBase { 00057 00058 public: 00063 virtual int order(ClpInterior * model) ; 00066 virtual int factorize(const double * diagonal, int * rowsDropped) ; 00068 virtual void solve (double * region) ; 00070 00071 00075 ClpCholeskyTaucs(); 00077 virtual ~ClpCholeskyTaucs(); 00078 // Copy 00079 ClpCholeskyTaucs(const ClpCholeskyTaucs&); 00080 // Assignment 00081 ClpCholeskyTaucs& operator=(const ClpCholeskyTaucs&); 00083 virtual ClpCholeskyBase * clone() const ; 00085 00086 00087 private: 00090 00091 taucs_ccs_matrix * matrix_; 00093 void * factorization_; 00095 double * sparseFactor_; 00097 CoinBigIndex * choleskyStart_; 00099 int * choleskyRow_; 00101 CoinBigIndex sizeFactor_; 00103 ClpMatrixBase * rowCopy_; 00105 }; 00106 00107 #endif