source: trunk/Clp/src/ClpCholeskyTaucs.hpp @ 2470

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

formatting

  • Property svn:eol-style set to native
  • Property svn:keywords set to Id
File size: 2.2 KB
Line 
1/* $Id: ClpCholeskyTaucs.hpp 2385 2019-01-06 19:43:06Z stefan $ */
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 ClpCholeskyTaucs_H
7#define ClpCholeskyTaucs_H
8#include "taucs.h"
9#include "ClpCholeskyBase.hpp"
10class ClpMatrixBase;
11
12/** Taucs class for Clp Cholesky factorization
13
14If  you wish to use Sivan Toledo's TAUCS code see
15
16http://www.tau.ac.il/~stoledo/taucs/
17
18for terms of use
19
20The taucs.h file was modified to put
21
22#ifdef __cplusplus
23extern "C"{
24#endif
25               after line 440 (#endif) and
26#ifdef __cplusplus
27          }
28#endif
29               at end
30
31I also modified LAPACK dpotf2.f (two places) to change the GO TO 30 on AJJ.Lt.0.0
32
33to
34
35            IF( AJJ.LE.1.0e-20 ) THEN
36               AJJ = 1.0e100;
37            ELSE
38               AJJ = SQRT( AJJ )
39            END IF
40
41*/
42class ClpCholeskyTaucs : public ClpCholeskyBase {
43
44public:
45  /**@name Virtual methods that the derived classes provides  */
46  //@{
47  /** Orders rows and saves pointer to matrix.and model.
48      Returns non-zero if not enough memory */
49  virtual int order(ClpInterior *model);
50  /// Dummy
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  //@}
58
59  /**@name Constructors, destructor */
60  //@{
61  /** Default constructor. */
62  ClpCholeskyTaucs();
63  /** Destructor  */
64  virtual ~ClpCholeskyTaucs();
65  // Copy
66  ClpCholeskyTaucs(const ClpCholeskyTaucs &);
67  // Assignment
68  ClpCholeskyTaucs &operator=(const ClpCholeskyTaucs &);
69  /// Clone
70  virtual ClpCholeskyBase *clone() const;
71  //@}
72
73private:
74  /**@name Data members */
75  //@{
76  /// Taucs matrix (== sparseFactor etc)
77  taucs_ccs_matrix *matrix_;
78  /// Taucs factor
79  void *factorization_;
80  /// sparseFactor.
81  double *sparseFactorT_;
82  /// choleskyStart
83  CoinBigIndex *choleskyStartT_;
84  /// choleskyRow
85  int *choleskyRowT_;
86  /// sizeFactor.
87  CoinBigIndex sizeFactorT_;
88  /// Row copy of matrix
89  ClpMatrixBase *rowCopyT_;
90  //@}
91};
92
93#endif
94
95/* vi: softtabstop=2 shiftwidth=2 expandtab tabstop=2
96*/
Note: See TracBrowser for help on using the repository browser.