Clp trunk
|
00001 /* $Id$ */ 00002 // Copyright (C) 2004, International Business Machines 00003 // Corporation and others. All Rights Reserved. 00004 // This code is licensed under the terms of the Eclipse Public License (EPL). 00005 00006 #ifndef ClpCholeskyTaucs_H 00007 #define ClpCholeskyTaucs_H 00008 #include "taucs.h" 00009 #include "ClpCholeskyBase.hpp" 00010 class ClpMatrixBase; 00011 00012 00043 class ClpCholeskyTaucs : public ClpCholeskyBase { 00044 00045 public: 00050 virtual int order(ClpInterior * model) ; 00052 virtual int symbolic(); 00055 virtual int factorize(const double * diagonal, int * rowsDropped) ; 00057 virtual void solve (double * region) ; 00059 00060 00064 ClpCholeskyTaucs(); 00066 virtual ~ClpCholeskyTaucs(); 00067 // Copy 00068 ClpCholeskyTaucs(const ClpCholeskyTaucs&); 00069 // Assignment 00070 ClpCholeskyTaucs& operator=(const ClpCholeskyTaucs&); 00072 virtual ClpCholeskyBase * clone() const ; 00074 00075 00076 private: 00079 00080 taucs_ccs_matrix * matrix_; 00082 void * factorization_; 00084 double * sparseFactorT_; 00086 CoinBigIndex * choleskyStartT_; 00088 int * choleskyRowT_; 00090 CoinBigIndex sizeFactorT_; 00092 ClpMatrixBase * rowCopyT_; 00094 }; 00095 00096 #endif