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

Last change on this file since 2030 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.3 KB
Line 
1/* $Id: ClpCholeskyTaucs.hpp 1665 2011-01-04 17:55:54Z forrest $ */
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
13/** Taucs class for Clp Cholesky factorization
14
15If  you wish to use Sivan Toledo's TAUCS code see
16
17http://www.tau.ac.il/~stoledo/taucs/
18
19for terms of use
20
21The taucs.h file was modified to put
22
23#ifdef __cplusplus
24extern "C"{
25#endif
26               after line 440 (#endif) and
27#ifdef __cplusplus
28          }
29#endif
30               at end
31
32I also modified LAPACK dpotf2.f (two places) to change the GO TO 30 on AJJ.Lt.0.0
33
34to
35
36            IF( AJJ.LE.1.0e-20 ) THEN
37               AJJ = 1.0e100;
38            ELSE
39               AJJ = SQRT( AJJ )
40            END IF
41
42*/
43class ClpCholeskyTaucs : public ClpCholeskyBase {
44
45public:
46     /**@name Virtual methods that the derived classes provides  */
47     //@{
48     /** Orders rows and saves pointer to matrix.and model.
49      Returns non-zero if not enough memory */
50     virtual int order(ClpInterior * model) ;
51     /// Dummy
52     virtual int symbolic();
53     /** Factorize - filling in rowsDropped and returning number dropped.
54         If return code negative then out of memory */
55     virtual int factorize(const double * diagonal, int * rowsDropped) ;
56     /** Uses factorization to solve. */
57     virtual void solve (double * region) ;
58     //@}
59
60
61     /**@name Constructors, destructor */
62     //@{
63     /** Default constructor. */
64     ClpCholeskyTaucs();
65     /** Destructor  */
66     virtual ~ClpCholeskyTaucs();
67     // Copy
68     ClpCholeskyTaucs(const ClpCholeskyTaucs&);
69     // Assignment
70     ClpCholeskyTaucs& operator=(const ClpCholeskyTaucs&);
71     /// Clone
72     virtual ClpCholeskyBase * clone() const ;
73     //@}
74
75
76private:
77     /**@name Data members */
78     //@{
79     /// Taucs matrix (== sparseFactor etc)
80     taucs_ccs_matrix * matrix_;
81     /// Taucs factor
82     void * factorization_;
83     /// sparseFactor.
84     double * sparseFactorT_;
85     /// choleskyStart
86     CoinBigIndex * choleskyStartT_;
87     /// choleskyRow
88     int * choleskyRowT_;
89     /// sizeFactor.
90     CoinBigIndex sizeFactorT_;
91     /// Row copy of matrix
92     ClpMatrixBase * rowCopyT_;
93     //@}
94};
95
96#endif
Note: See TracBrowser for help on using the repository browser.