source: trunk/Clp/src/ClpCholeskyUfl.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:eol-style set to native
  • Property svn:keywords set to Id
File size: 2.2 KB
Line 
1/* $Id: ClpCholeskyUfl.hpp 1665 2011-01-04 17:55:54Z lou $ */
2// Copyright (C) 2004, 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 ClpCholeskyUfl_H
7#define ClpCholeskyUfl_H
8#include "ClpCholeskyBase.hpp"
9#ifdef __cplusplus
10extern "C" {
11#endif
12#ifndef CLP_USE_CHOLMOD
13#include "amd.h"
14#else
15#include "cholmod.h"
16#endif
17#ifdef __cplusplus
18}
19#endif
20class ClpMatrixBase;
21class ClpCholeskyDense;
22
23/** Ufl class for Clp Cholesky factorization
24
25If  you wish to use AMD code from University of Florida see
26
27    http://www.cise.ufl.edu/research/sparse/amd
28
29for terms of use
30
31If  you wish to use CHOLMOD code from University of Florida see
32
33    http://www.cise.ufl.edu/research/sparse/cholmod
34
35for terms of use
36
37*/
38class ClpCholeskyUfl : public ClpCholeskyBase {
39
40public:
41     /**@name Virtual methods that the derived classes provides  */
42     //@{
43     /** Orders rows and saves pointer to matrix.and model.
44      Returns non-zero if not enough memory */
45     virtual int order(ClpInterior * model) ;
46#ifdef CLP_USE_CHOLMOD
47     /** Does Symbolic factorization given permutation.
48         This is called immediately after order.  If user provides this then
49         user must provide factorize and solve.  Otherwise the default factorization is used
50         returns non-zero if not enough memory */
51     virtual int symbolic();
52     /** Factorize - filling in rowsDropped and returning number dropped.
53         If return code negative then out of memory */
54     virtual int factorize(const double * diagonal, int * rowsDropped) ;
55     /** Uses factorization to solve. */
56     virtual void solve (double * region) ;
57#endif
58     //@}
59
60
61     /**@name Constructors, destructor */
62     //@{
63     /** Constructor which has dense columns activated.
64         Default is off. */
65     ClpCholeskyUfl(int denseThreshold = -1);
66     /** Destructor  */
67     virtual ~ClpCholeskyUfl();
68     // Copy
69     ClpCholeskyUfl(const ClpCholeskyUfl&);
70     // Assignment
71     ClpCholeskyUfl& operator=(const ClpCholeskyUfl&);
72     /// Clone
73     virtual ClpCholeskyBase * clone() const ;
74     //@}
75
76
77private:
78#ifdef CLP_USE_CHOLMOD
79     cholmod_factor * L_ ;
80     cholmod_common c_ ;
81#endif
82};
83
84#endif
Note: See TracBrowser for help on using the repository browser.