00001 // Copyright (C) 2004, International Business Machines 00002 // Corporation and others. All Rights Reserved. 00003 #ifndef ClpCholeskyWssmpKKT_H 00004 #define ClpCholeskyWssmpKKT_H 00005 00006 #include "ClpCholeskyBase.hpp" 00007 00008 00012 class ClpMatrixBase; 00013 class ClpCholeskyDense; 00014 class ClpCholeskyWssmpKKT : 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) ; 00029 virtual void solveKKT (double * region1, double * region2, const double * diagonal, 00030 double diagonalScaleFactor); 00032 00033 00038 ClpCholeskyWssmpKKT(int denseThreshold=-1); 00040 virtual ~ClpCholeskyWssmpKKT(); 00041 // Copy 00042 ClpCholeskyWssmpKKT(const ClpCholeskyWssmpKKT&); 00043 // Assignment 00044 ClpCholeskyWssmpKKT& operator=(const ClpCholeskyWssmpKKT&); 00046 virtual ClpCholeskyBase * clone() const ; 00048 00049 00050 private: 00053 00054 double * sparseFactor_; 00056 CoinBigIndex * choleskyStart_; 00058 int * choleskyRow_; 00060 CoinBigIndex sizeFactor_; 00062 int integerParameters_[64]; 00064 double doubleParameters_[64]; 00066 int denseThreshold_; 00068 }; 00069 00070 #endif