00001 /* $Id: ClpCholeskyUfl.hpp 1525 2010-02-26 17:27:59Z mjs $ */ 00002 // Copyright (C) 2004, International Business Machines 00003 // Corporation and others. All Rights Reserved. 00004 #ifndef ClpCholeskyUfl_H 00005 #define ClpCholeskyUfl_H 00006 #include "ClpCholeskyBase.hpp" 00007 #ifdef __cplusplus 00008 extern "C" { 00009 #endif 00010 #ifndef CLP_USE_CHOLMOD 00011 #include "amd.h" 00012 #else 00013 #include "cholmod.h" 00014 #endif 00015 #ifdef __cplusplus 00016 } 00017 #endif 00018 class ClpMatrixBase; 00019 class ClpCholeskyDense; 00020 00036 class ClpCholeskyUfl : public ClpCholeskyBase { 00037 00038 public: 00043 virtual int order(ClpInterior * model) ; 00044 #ifdef CLP_USE_CHOLMOD 00045 00049 virtual int symbolic(); 00052 virtual int factorize(const double * diagonal, int * rowsDropped) ; 00054 virtual void solve (double * region) ; 00055 #endif 00056 00057 00058 00063 ClpCholeskyUfl(int denseThreshold = -1); 00065 virtual ~ClpCholeskyUfl(); 00066 // Copy 00067 ClpCholeskyUfl(const ClpCholeskyUfl&); 00068 // Assignment 00069 ClpCholeskyUfl& operator=(const ClpCholeskyUfl&); 00071 virtual ClpCholeskyBase * clone() const ; 00073 00074 00075 private: 00076 #ifdef CLP_USE_CHOLMOD 00077 cholmod_factor * L_ ; 00078 cholmod_common c_ ; 00079 #endif 00080 }; 00081 00082 #endif