00001 /* $Id: ClpCholeskyMumps.hpp 1525 2010-02-26 17:27:59Z mjs $ */ 00002 // Copyright (C) 2009, International Business Machines 00003 // Corporation and others. All Rights Reserved. 00004 #ifndef ClpCholeskyMumps_H 00005 #define ClpCholeskyMumps_H 00006 #include "ClpCholeskyBase.hpp" 00007 #ifdef __cplusplus 00008 extern "C" { 00009 #endif 00010 #include "amd.h" 00011 #include "dmumps_c.h" 00012 //#include "mpi.h" 00013 //#include "/home/jjforre/cbc-trunk/ThirdParty/Mumps/MUMPS/libseq/mpi.h" 00014 #ifdef __cplusplus 00015 } 00016 #endif 00017 class ClpMatrixBase; 00018 class ClpCholeskyDense; 00019 00023 class ClpCholeskyMumps : public ClpCholeskyBase { 00024 00025 public: 00030 virtual int order(ClpInterior * model) ; 00035 virtual int symbolic(); 00038 virtual int factorize(const double * diagonal, int * rowsDropped) ; 00040 virtual void solve (double * region) ; 00042 00043 00048 ClpCholeskyMumps(int denseThreshold = -1); 00050 virtual ~ClpCholeskyMumps(); 00051 // Copy 00052 ClpCholeskyMumps(const ClpCholeskyMumps&); 00053 // Assignment 00054 ClpCholeskyMumps& operator=(const ClpCholeskyMumps&); 00056 virtual ClpCholeskyBase * clone() const ; 00058 00059 00060 private: 00061 // Mumps structure 00062 DMUMPS_STRUC_C mumps_; 00063 }; 00064 00065 #endif