00001 // Copyright (C) 2003, International Business Machines 00002 // Corporation and others. All Rights Reserved. 00003 #ifndef ClpCholeskyWssmp_H 00004 #define ClpCholeskyWssmp_H 00005 00006 #include "ClpCholeskyBase.hpp" 00007 00008 00012 class ClpMatrixBase; 00013 class ClpCholeskyDense; 00014 class ClpCholeskyWssmp : public ClpCholeskyBase { 00015 00016 public: 00021 virtual int order(ClpInterior * model) ; 00024 virtual int factorize(const double * diagonal, int * rowsDropped) ; 00026 virtual void solve (double * region) ; 00028 00029 00034 ClpCholeskyWssmp(int denseThreshold=-1); 00036 virtual ~ClpCholeskyWssmp(); 00037 // Copy 00038 ClpCholeskyWssmp(const ClpCholeskyWssmp&); 00039 // Assignment 00040 ClpCholeskyWssmp& operator=(const ClpCholeskyWssmp&); 00042 virtual ClpCholeskyBase * clone() const ; 00044 00045 00046 private: 00049 00050 double * sparseFactor_; 00052 CoinBigIndex * choleskyStart_; 00054 int * choleskyRow_; 00056 CoinBigIndex sizeFactor_; 00058 int integerParameters_[64]; 00060 double doubleParameters_[64]; 00062 ClpMatrixBase * rowCopy_; 00064 char * whichDense_; 00066 double * denseColumn_; 00068 ClpCholeskyDense * dense_; 00070 int denseThreshold_; 00072 }; 00073 00074 #endif