Clp 1.17.5
Loading...
Searching...
No Matches
CoinAbcCommonFactorization.hpp
Go to the documentation of this file.
1/* $Id: CoinAbcCommonFactorization.hpp 2385 2019-01-06 19:43:06Z unxusr $ */
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
29class CoinPackedMatrix;
30class CoinFactorization;
31#define FACTORIZATION_STATISTICS 0 //1
32typedef struct {
40#if FACTORIZATION_STATISTICS
41 double twiddleFactor1_;
42 double twiddleFactor2_;
43#endif
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
71typedef struct {
72 CoinBigIndex next;
73 CoinBigIndex start;
76void CoinAbcDgetrs(char trans, int m, double *a, double *work);
77int CoinAbcDgetrf(int m, int n, double *a, int lda, int *ipiv
78#if ABC_PARALLEL == 2
79 ,
80 int parallelMode
81#endif
82);
83void CoinAbcDgetrs(char trans, int m, long double *a, long double *work);
84int 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*/
int CoinAbcDgetrf(int m, int n, double *a, int lda, int *ipiv)
void CoinAbcDgetrs(char trans, int m, double *a, double *work)
unsigned int CoinSimplexUnsignedInt
#define ABC_PARALLEL
int CoinSimplexInt
CoinSimplexUnsignedInt stack