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 class ClpMatrixBase; 00008 00009 00040 class ClpCholeskyTaucs : public ClpCholeskyBase { 00041 00042 public: 00047 virtual int order(ClpInterior * model) ; 00049 virtual int symbolic(); 00052 virtual int factorize(const double * diagonal, int * rowsDropped) ; 00054 virtual void solve (double * region) ; 00056 00057 00061 ClpCholeskyTaucs(); 00063 virtual ~ClpCholeskyTaucs(); 00064 // Copy 00065 ClpCholeskyTaucs(const ClpCholeskyTaucs&); 00066 // Assignment 00067 ClpCholeskyTaucs& operator=(const ClpCholeskyTaucs&); 00069 virtual ClpCholeskyBase * clone() const ; 00071 00072 00073 private: 00076 00077 taucs_ccs_matrix * matrix_; 00079 void * factorization_; 00081 double * sparseFactorT_; 00083 CoinBigIndex * choleskyStartT_; 00085 int * choleskyRowT_; 00087 CoinBigIndex sizeFactorT_; 00089 ClpMatrixBase * rowCopyT_; 00091 }; 00092 00093 #endif