Clp trunk
ClpCholeskyMumps.hpp
Go to the documentation of this file.
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
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Friends Defines