Clp trunk
|
00001 /* $Id$ */ 00002 // Copyright (C) 2009, 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 ClpCholeskyMumps_H 00007 #define ClpCholeskyMumps_H 00008 #include "ClpCholeskyBase.hpp" 00009 class ClpMatrixBase; 00010 class ClpCholeskyDense; 00011 00012 // unfortunately, DMUMPS_STRUC_C is an anonymous struct in MUMPS, so we define it to void for everyone outside ClpCholeskyMumps 00013 // if this file is included by ClpCholeskyMumps.cpp, then after dmumps_c.h has been included, which defines MUMPS_VERSION 00014 #ifndef MUMPS_VERSION 00015 typedef void DMUMPS_STRUC_C; 00016 #endif 00017 00021 class ClpCholeskyMumps : public ClpCholeskyBase { 00022 00023 public: 00028 virtual int order(ClpInterior * model) ; 00033 virtual int symbolic(); 00036 virtual int factorize(const double * diagonal, int * rowsDropped) ; 00038 virtual void solve (double * region) ; 00040 00041 00046 ClpCholeskyMumps(int denseThreshold = -1); 00048 virtual ~ClpCholeskyMumps(); 00050 virtual ClpCholeskyBase * clone() const ; 00052 00053 private: 00054 // Mumps structure 00055 DMUMPS_STRUC_C* mumps_; 00056 00057 // Copy 00058 ClpCholeskyMumps(const ClpCholeskyMumps&); 00059 // Assignment 00060 ClpCholeskyMumps& operator=(const ClpCholeskyMumps&); 00061 }; 00062 00063 #endif