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

Last change on this file since 2385 was 2385, checked in by unxusr, 4 months ago

formatting

  • Property svn:keywords set to Id
File size: 2.0 KB
Line 
1/* $Id: ClpCholeskyMumps.hpp 2385 2019-01-06 19:43:06Z unxusr $ */
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"
9class ClpMatrixBase;
10class ClpCholeskyDense;
11
12// unfortunately, DMUMPS_STRUC_C is an anonymous struct in MUMPS, so we define it to void for everyone outside ClpCholeskyMumps
13// if this file is included by ClpCholeskyMumps.cpp, then after dmumps_c.h has been included, which defines MUMPS_VERSION
14#ifndef MUMPS_VERSION
15typedef void DMUMPS_STRUC_C;
16#endif
17
18/** Mumps class for Clp Cholesky factorization
19
20*/
21class ClpCholeskyMumps : public ClpCholeskyBase {
22
23public:
24  /**@name Virtual methods that the derived classes provides  */
25  //@{
26  /** Orders rows and saves pointer to matrix.and model.
27      Returns non-zero if not enough memory */
28  virtual int order(ClpInterior *model);
29  /** Does Symbolic factorization given permutation.
30         This is called immediately after order.  If user provides this then
31         user must provide factorize and solve.  Otherwise the default factorization is used
32         returns non-zero if not enough memory */
33  virtual int symbolic();
34  /** Factorize - filling in rowsDropped and returning number dropped.
35         If return code negative then out of memory */
36  virtual int factorize(const double *diagonal, int *rowsDropped);
37  /** Uses factorization to solve. */
38  virtual void solve(double *region);
39  //@}
40
41  /**@name Constructors, destructor */
42  //@{
43  /** Constructor which has dense columns activated.
44         Default is off. */
45  ClpCholeskyMumps(int denseThreshold = -1, int logLevel = 0);
46  /** Destructor  */
47  virtual ~ClpCholeskyMumps();
48  /// Clone
49  virtual ClpCholeskyBase *clone() const;
50  //@}
51
52private:
53  // Mumps structure
54  DMUMPS_STRUC_C *mumps_;
55
56  // Copy
57  ClpCholeskyMumps(const ClpCholeskyMumps &);
58  // Assignment
59  ClpCholeskyMumps &operator=(const ClpCholeskyMumps &);
60};
61
62#endif
63
64/* vi: softtabstop=2 shiftwidth=2 expandtab tabstop=2
65*/
Note: See TracBrowser for help on using the repository browser.