Clp
1.17.8
Clp
src
CoinAbcCommonFactorization.hpp
Go to the documentation of this file.
1
/* $Id$ */
2
// Copyright (C) 2000, International Business Machines
3
// Corporation and others, Copyright (C) 2012, FasterCoin. All Rights Reserved.
4
// This code is licensed under the terms of the Eclipse Public License (EPL).
5
#ifndef CoinAbcCommonFactorization_H
6
#define CoinAbcCommonFactorization_H
7
/* meaning of ABC_SMALL
8
-1 force copies (and no tests)
9
0 force copy of U
10
2 force no copies (and no tests)
11
*/
12
13
#include "
CoinAbcCommon.hpp
"
14
//#define DONT_USE_SLACKS
15
//#define COIN_ONE_ETA_COPY 100
16
//#define COIN_FAC_NEW 1
17
#define INITIAL_AVERAGE 1.0
18
#define INITIAL_AVERAGE2 1.0
19
#define AVERAGE_SCALE_BACK 0.8
20
//#define SWITCHABLE_STATISTICS
21
#ifndef SWITCHABLE_STATISTICS
22
#define setStatistics(x)
23
#define factorizationStatistics() (true)
24
#else
25
#define setStatistics(x) collectStatistics_ = x
26
#define factorizationStatistics() (collectStatistics_)
27
#endif
28
#include "
CoinAbcDenseFactorization.hpp
"
29
class
CoinPackedMatrix;
30
class
CoinFactorization;
31
#define FACTORIZATION_STATISTICS 0 //1
32
typedef
struct
{
33
double
countInput_
;
34
double
countAfterL_
;
35
double
countAfterR_
;
36
double
countAfterU_
;
37
double
averageAfterL_
;
38
double
averageAfterR_
;
39
double
averageAfterU_
;
40
#if FACTORIZATION_STATISTICS
41
double
twiddleFactor1_;
42
double
twiddleFactor2_;
43
#endif
44
CoinSimplexInt
numberCounts_
;
45
}
CoinAbcStatistics
;
46
#if FACTORIZATION_STATISTICS
47
#define twiddleFactor1S() (statistics.twiddleFactor1_)
48
#define twiddleFactor2S() (statistics.twiddleFactor2_)
49
#define twiddleFtranFactor1() (ftranTwiddleFactor1_)
50
#define twiddleFtranFTFactor1() (ftranFTTwiddleFactor1_)
51
#define twiddleBtranFactor1() (btranTwiddleFactor1_)
52
#define twiddleFtranFactor2() (ftranTwiddleFactor2_)
53
#define twiddleFtranFTFactor2() (ftranFTTwiddleFactor2_)
54
#define twiddleBtranFactor2() (btranTwiddleFactor2_)
55
#define twiddleBtranFullFactor1() (btranFullTwiddleFactor1_)
56
#else
57
#define twiddleFactor1S() (1.0)
58
#define twiddleFactor2S() (1.0)
59
#define twiddleFtranFactor1() (1.0)
60
#define twiddleFtranFTFactor1() (1.0)
61
#define twiddleBtranFactor1() (1.0)
62
#define twiddleFtranFactor2() (1.0)
63
#define twiddleFtranFTFactor2() (1.0)
64
#define twiddleBtranFactor2() (1.0)
65
#define twiddleBtranFullFactor1() (1.0)
66
#endif
67
#define ABC_FAC_GOT_LCOPY 4
68
#define ABC_FAC_GOT_RCOPY 8
69
#define ABC_FAC_GOT_UCOPY 16
70
#define ABC_FAC_GOT_SPARSE 32
71
typedef
struct
{
72
CoinBigIndex
next
;
73
CoinBigIndex
start
;
74
CoinSimplexUnsignedInt
stack
;
75
}
CoinAbcStack
;
76
void
CoinAbcDgetrs
(
char
trans,
int
m,
double
*a,
double
*work);
77
int
CoinAbcDgetrf
(
int
m,
int
n,
double
*a,
int
lda,
int
*ipiv
78
#
if
ABC_PARALLEL
== 2
79
,
80
int
parallelMode
81
#endif
82
);
83
void
CoinAbcDgetrs
(
char
trans,
int
m,
long
double
*a,
long
double
*work);
84
int
CoinAbcDgetrf
(
int
m,
int
n,
long
double
*a,
int
lda,
int
*ipiv
85
#
if
ABC_PARALLEL
== 2
86
,
87
int
parallelMode
88
#endif
89
);
90
#define SWAP_FACTOR 2
91
#define BLOCKING8 8
92
#define BLOCKING8X8 BLOCKING8 *BLOCKING8
93
#endif
94
95
/* vi: softtabstop=2 shiftwidth=2 expandtab tabstop=2
96
*/
ABC_PARALLEL
#define ABC_PARALLEL
Definition:
CoinAbcCommon.hpp:36
CoinAbcStatistics::countInput_
double countInput_
Definition:
CoinAbcCommonFactorization.hpp:33
CoinAbcStatistics::averageAfterU_
double averageAfterU_
Definition:
CoinAbcCommonFactorization.hpp:39
CoinAbcStatistics::numberCounts_
CoinSimplexInt numberCounts_
Definition:
CoinAbcCommonFactorization.hpp:44
CoinAbcStack
Definition:
CoinAbcCommonFactorization.hpp:71
CoinAbcStatistics::countAfterU_
double countAfterU_
Definition:
CoinAbcCommonFactorization.hpp:36
CoinSimplexUnsignedInt
unsigned int CoinSimplexUnsignedInt
Definition:
CoinAbcCommon.hpp:23
CoinAbcStack::stack
CoinSimplexUnsignedInt stack
Definition:
CoinAbcCommonFactorization.hpp:74
CoinAbcDenseFactorization.hpp
CoinAbcStatistics::countAfterL_
double countAfterL_
Definition:
CoinAbcCommonFactorization.hpp:34
CoinAbcDgetrf
int CoinAbcDgetrf(int m, int n, double *a, int lda, int *ipiv)
CoinAbcStatistics
Definition:
CoinAbcCommonFactorization.hpp:32
CoinAbcStatistics::countAfterR_
double countAfterR_
Definition:
CoinAbcCommonFactorization.hpp:35
CoinAbcStatistics::averageAfterR_
double averageAfterR_
Definition:
CoinAbcCommonFactorization.hpp:38
CoinSimplexInt
int CoinSimplexInt
Definition:
CoinAbcCommon.hpp:22
CoinAbcDgetrs
void CoinAbcDgetrs(char trans, int m, double *a, double *work)
CoinAbcCommon.hpp
CoinAbcStack::start
CoinBigIndex start
Definition:
CoinAbcCommonFactorization.hpp:73
CoinAbcStack::next
CoinBigIndex next
Definition:
CoinAbcCommonFactorization.hpp:72
CoinAbcStatistics::averageAfterL_
double averageAfterL_
Definition:
CoinAbcCommonFactorization.hpp:37
Generated by
1.8.17