source: trunk/Clp/src/CoinAbcCommonFactorization.hpp @ 1910

Last change on this file since 1910 was 1910, checked in by stefan, 6 years ago
  • add configure option --enable-aboca={1,2,3,4,yes,no}
  • compile Aboca source only if --enable-aboca set (instead of compiling empty source files)
  • fix svn properties
  • Property svn:keywords set to Id
File size: 2.8 KB
Line 
1/* $Id: CoinAbcCommonFactorization.hpp 1910 2013-01-27 02:00:13Z stefan $ */
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"
29class CoinPackedMatrix;
30class CoinFactorization;
31#define FACTORIZATION_STATISTICS 0 //1
32typedef 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
71typedef struct {
72  CoinBigIndex next;
73  CoinBigIndex start;
74  CoinSimplexUnsignedInt stack;
75} CoinAbcStack;
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                          ,int parallelMode
80#endif
81);
82void CoinAbcDgetrs(char trans,int m, long double * a, long double * work);
83int  CoinAbcDgetrf(int m, int n, long double * a, int lda, int * ipiv
84#if ABC_PARALLEL==2
85                          ,int parallelMode
86#endif
87);
88#define SWAP_FACTOR 2
89#define BLOCKING8 8
90#define BLOCKING8X8 BLOCKING8*BLOCKING8
91#endif
Note: See TracBrowser for help on using the repository browser.