CoinAbcCommonFactorization.hpp

Go to the documentation of this file.
00001 /* $Id: CoinAbcCommonFactorization.hpp 1910 2013-01-27 02:00:13Z stefan $ */
00002 // Copyright (C) 2000, International Business Machines
00003 // Corporation and others, Copyright (C) 2012, FasterCoin.  All Rights Reserved.
00004 // This code is licensed under the terms of the Eclipse Public License (EPL).
00005 #ifndef CoinAbcCommonFactorization_H
00006 #define CoinAbcCommonFactorization_H
00007 /* meaning of ABC_SMALL 
00008    -1 force copies (and no tests)
00009    0 force copy of U
00010    2 force no copies (and no tests)
00011 */
00012 
00013 #include "CoinAbcCommon.hpp"
00014 //#define DONT_USE_SLACKS
00015 //#define COIN_ONE_ETA_COPY 100
00016 //#define COIN_FAC_NEW 1
00017 #define INITIAL_AVERAGE 1.0
00018 #define INITIAL_AVERAGE2 1.0
00019 #define AVERAGE_SCALE_BACK 0.8
00020 //#define SWITCHABLE_STATISTICS
00021 #ifndef SWITCHABLE_STATISTICS
00022 #define setStatistics(x)
00023 #define factorizationStatistics() (true)
00024 #else
00025 #define setStatistics(x) collectStatistics_=x
00026 #define factorizationStatistics() (collectStatistics_)
00027 #endif
00028 #include "CoinAbcDenseFactorization.hpp"
00029 class CoinPackedMatrix;
00030 class CoinFactorization;
00031 #define FACTORIZATION_STATISTICS 0 //1
00032 typedef struct {
00033   double countInput_;
00034   double countAfterL_;
00035   double countAfterR_;
00036   double countAfterU_;
00037   double averageAfterL_;
00038   double averageAfterR_;
00039   double averageAfterU_;
00040 #if FACTORIZATION_STATISTICS
00041   double twiddleFactor1_;
00042   double twiddleFactor2_;
00043 #endif  
00044   CoinSimplexInt numberCounts_;
00045 } CoinAbcStatistics;
00046 #if FACTORIZATION_STATISTICS
00047 #define twiddleFactor1S()  (statistics.twiddleFactor1_)
00048 #define twiddleFactor2S()  (statistics.twiddleFactor2_)
00049 #define twiddleFtranFactor1()  (ftranTwiddleFactor1_)
00050 #define twiddleFtranFTFactor1()  (ftranFTTwiddleFactor1_)
00051 #define twiddleBtranFactor1()  (btranTwiddleFactor1_)
00052 #define twiddleFtranFactor2()  (ftranTwiddleFactor2_)
00053 #define twiddleFtranFTFactor2()  (ftranFTTwiddleFactor2_)
00054 #define twiddleBtranFactor2()  (btranTwiddleFactor2_)
00055 #define twiddleBtranFullFactor1()  (btranFullTwiddleFactor1_)
00056 #else
00057 #define twiddleFactor1S()  (1.0)
00058 #define twiddleFactor2S()  (1.0)
00059 #define twiddleFtranFactor1()  (1.0)
00060 #define twiddleFtranFTFactor1()  (1.0)
00061 #define twiddleBtranFactor1()  (1.0)
00062 #define twiddleFtranFactor2()  (1.0)
00063 #define twiddleFtranFTFactor2()  (1.0)
00064 #define twiddleBtranFactor2()  (1.0)
00065 #define twiddleBtranFullFactor1()  (1.0)
00066 #endif  
00067 #define ABC_FAC_GOT_LCOPY 4
00068 #define ABC_FAC_GOT_RCOPY 8
00069 #define ABC_FAC_GOT_UCOPY 16
00070 #define ABC_FAC_GOT_SPARSE 32
00071 typedef struct {
00072   CoinBigIndex next;
00073   CoinBigIndex start;
00074   CoinSimplexUnsignedInt stack;
00075 } CoinAbcStack;
00076 void CoinAbcDgetrs(char trans,int m, double * a, double * work);
00077 int  CoinAbcDgetrf(int m, int n, double * a, int lda, int * ipiv
00078 #if ABC_PARALLEL==2
00079                           ,int parallelMode
00080 #endif
00081 );
00082 void CoinAbcDgetrs(char trans,int m, long double * a, long double * work);
00083 int  CoinAbcDgetrf(int m, int n, long double * a, int lda, int * ipiv
00084 #if ABC_PARALLEL==2
00085                           ,int parallelMode
00086 #endif
00087 );
00088 #define SWAP_FACTOR 2
00089 #define BLOCKING8 8
00090 #define BLOCKING8X8 BLOCKING8*BLOCKING8
00091 #endif
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines

Generated on 23 Nov 2013 for Clp by  doxygen 1.6.1