00001 // Copyright (C) 2009, International Business Machines 00002 // Corporation and others. All Rights Reserved. 00003 #ifndef ClpCholeskyMumps_H 00004 #define ClpCholeskyMumps_H 00005 #include "ClpCholeskyBase.hpp" 00006 #ifdef __cplusplus 00007 extern "C"{ 00008 #endif 00009 #include "amd.h" 00010 #include "dmumps_c.h" 00011 //#include "mpi.h" 00012 //#include "/home/jjforre/cbc-trunk/ThirdParty/Mumps/MUMPS/libseq/mpi.h" 00013 #ifdef __cplusplus 00014 } 00015 #endif 00016 class ClpMatrixBase; 00017 class ClpCholeskyDense; 00018 00022 class ClpCholeskyMumps : public ClpCholeskyBase { 00023 00024 public: 00029 virtual int order(ClpInterior * model) ; 00034 virtual int symbolic(); 00037 virtual int factorize(const double * diagonal, int * rowsDropped) ; 00039 virtual void solve (double * region) ; 00041 00042 00047 ClpCholeskyMumps(int denseThreshold=-1); 00049 virtual ~ClpCholeskyMumps(); 00050 // Copy 00051 ClpCholeskyMumps(const ClpCholeskyMumps&); 00052 // Assignment 00053 ClpCholeskyMumps& operator=(const ClpCholeskyMumps&); 00055 virtual ClpCholeskyBase * clone() const ; 00057 00058 00059 private: 00060 // Mumps structure 00061 DMUMPS_STRUC_C mumps_; 00062 }; 00063 00064 #endif