/build/buildd/clp-1.12.0/Clp/src/ClpCholeskyUfl.hpp
Go to the documentation of this file.
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