source: trunk/Clp/src/ClpCholeskyMumps.hpp @ 1665

Last change on this file since 1665 was 1665, checked in by lou, 9 years ago

Add EPL license notice in src.

  • Property svn:keywords set to Id
File size: 2.0 KB
Line 
1/* $Id: ClpCholeskyMumps.hpp 1665 2011-01-04 17:55:54Z lou $ */
2// Copyright (C) 2009, International Business Machines
3// Corporation and others.  All Rights Reserved.
4// This code is licensed under the terms of the Eclipse Public License (EPL).
5
6#ifndef ClpCholeskyMumps_H
7#define ClpCholeskyMumps_H
8#include "ClpCholeskyBase.hpp"
9#ifdef __cplusplus
10extern "C" {
11#endif
12#include "amd.h"
13#include "dmumps_c.h"
14     //#include "mpi.h"
15     //#include "/home/jjforre/cbc-trunk/ThirdParty/Mumps/MUMPS/libseq/mpi.h"
16#ifdef __cplusplus
17}
18#endif
19class ClpMatrixBase;
20class ClpCholeskyDense;
21
22/** Mumps class for Clp Cholesky factorization
23
24*/
25class ClpCholeskyMumps : public ClpCholeskyBase {
26
27public:
28     /**@name Virtual methods that the derived classes provides  */
29     //@{
30     /** Orders rows and saves pointer to matrix.and model.
31      Returns non-zero if not enough memory */
32     virtual int order(ClpInterior * model) ;
33     /** Does Symbolic factorization given permutation.
34         This is called immediately after order.  If user provides this then
35         user must provide factorize and solve.  Otherwise the default factorization is used
36         returns non-zero if not enough memory */
37     virtual int symbolic();
38     /** Factorize - filling in rowsDropped and returning number dropped.
39         If return code negative then out of memory */
40     virtual int factorize(const double * diagonal, int * rowsDropped) ;
41     /** Uses factorization to solve. */
42     virtual void solve (double * region) ;
43     //@}
44
45
46     /**@name Constructors, destructor */
47     //@{
48     /** Constructor which has dense columns activated.
49         Default is off. */
50     ClpCholeskyMumps(int denseThreshold = -1);
51     /** Destructor  */
52     virtual ~ClpCholeskyMumps();
53     // Copy
54     ClpCholeskyMumps(const ClpCholeskyMumps&);
55     // Assignment
56     ClpCholeskyMumps& operator=(const ClpCholeskyMumps&);
57     /// Clone
58     virtual ClpCholeskyBase * clone() const ;
59     //@}
60
61
62private:
63     // Mumps structure
64     DMUMPS_STRUC_C mumps_;
65};
66
67#endif
Note: See TracBrowser for help on using the repository browser.