source: trunk/Clp/src/ClpCholeskyUfl.hpp @ 1321

Last change on this file since 1321 was 1321, checked in by forrest, 11 years ago

out compiler warnings and stability improvements

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