1 /***************************************************************************** 2 / 3 / SPACE (SPArse Cholesky Elimination) Library: const.h 4 / 5 / author J"urgen Schulze, University of Paderborn 6 / created 99sep14 7 / 8 / This file contains constant definitions 9 / 10 ******************************************************************************/ 11 12 /* matrix types */ 13 #define GRID 0 14 #define MESH 1 15 #define TORUS 2 16 #define HB 3 17 18 /* graph types */ 19 #define UNWEIGHTED 0 20 #define WEIGHTED 1 21 22 /* type of ordering */ 23 #define MINIMUM_PRIORITY 0 24 #define INCOMPLETE_ND 1 25 #define MULTISECTION 2 26 #define TRISTAGE_MULTISECTION 3 27 28 /* fill-reducing node selection strategies */ 29 #define AMD 0 30 #define AMF 1 31 #define AMMF 2 32 #define AMIND 3 33 34 /* node selection strategies for generating the domain decompositions */ 35 #define QMD 0 36 #define QMRDV 1 37 #define QRAND 2 38 39 /* default options for SPACE */ 40 #define SPACE_ORDTYPE MULTISECTION 41 #define SPACE_NODE_SELECTION1 AMMF 42 #define SPACE_NODE_SELECTION2 AMMF 43 #define SPACE_NODE_SELECTION3 QMRDV 44 #define SPACE_DOMAIN_SIZE 200 45 #define SPACE_MSGLVL 2 46 #define SPACE_ETREE_NONZ 256 47 #define SPACE_ETREE_BAL 5 48 #define SPACE_MASK_OFFSET 2 49 50 /* misc. constants */ 51 #define TRUE 1 52 #define FALSE 0 53 #define ERR -1 54 #define NOERR 0 55 #define MAX_LINE_LEN 255 56 #define MAX_INT ((1<<30)-1) 57 #define MAX_FLOAT 1e31 58 #define EPS 0.001 59 60 /* constants used in color array */ 61 /* these constants are also used as an index (do not change) */ 62 #define GRAY 0 63 #define BLACK 1 64 #define WHITE 2 65 66 /* constants for the Dulmage-Mendelsohn decomposition (dmflags) */ 67 /* these constants are also used as an index (do not change) */ 68 #define SI 0 /* node e X is reachable via exposed node e X */ 69 #define SX 1 /* node e X is reachable via exposed node e Y */ 70 #define SR 2 /* SR = X - (SI u SX) */ 71 #define BI 3 /* node e Y is reachable via exposed node e Y */ 72 #define BX 4 /* node e Y is reachable via exposed node e X */ 73 #define BR 5 /* BR = Y - (BI u BX) */ 74 75 /* size/indices of option array (do not change) */ 76 #define ORD_OPTION_SLOTS 7 77 78 #define OPTION_ORDTYPE 0 79 #define OPTION_NODE_SELECTION1 1 80 #define OPTION_NODE_SELECTION2 2 81 #define OPTION_NODE_SELECTION3 3 82 #define OPTION_DOMAIN_SIZE 4 83 #define OPTION_MSGLVL 5 84 #define OPTION_ETREE_NONZ 6 85 86 /* size/indices for timing array in ordering computation */ 87 #define ORD_TIME_SLOTS 12 88 89 #define TIME_COMPRESS 0 /* 0. TIME_COMPRESS */ 90 #define TIME_MS 1 /* 1. TIME_MS */ 91 #define TIME_MULTILEVEL 2 /* 1.1 TIME_MULTILEVEL */ 92 #define TIME_INITDOMDEC 3 /* 1.1.1 TIME_INITDOMDEC */ 93 #define TIME_COARSEDOMDEC 4 /* 1.1.2 TIME_COARSEDOMDEC */ 94 #define TIME_INITSEP 5 /* 1.1.3 TIME_INITSEP */ 95 #define TIME_REFINESEP 6 /* 1.1.4 TIME_REFINESEP */ 96 #define TIME_SMOOTH 7 /* 1.2 TIME_SMOOTH */ 97 #define TIME_BOTTOMUP 8 /* 2. TIME_BOTTOMUP */ 98 #define TIME_UPDADJNCY 9 /* 2.1 TIME_UPDADJNCY */ 99 #define TIME_FINDINODES 10 /* 2.2 TIME_FINDINODES */ 100 #define TIME_UPDSCORE 11 /* 2.3 TIME_UPDSCORE */ 101 102 /* size/indices for timing array in sequential numerical factorization */ 103 #define NUMFAC_TIME_SLOTS 4 104 105 #define TIME_INITFRONT 0 106 #define TIME_EXADD 1 107 #define TIME_KERNEL 2 108 #define TIME_INITUPD 3 109 110 /* size/indices for timing array in parallel numerical factorization */ 111 #define NUMFACPAR_TIME_SLOTS 9 112 113 #define TIME_INITFRONT 0 114 #define TIME_EXADD 1 115 #define TIME_KERNEL 2 116 #define TIME_INITUPD 3 117 #define TIME_EXCHANGE 4 118 #define TIME_INITFRONTPAR 5 119 #define TIME_EXADDPAR 6 120 #define TIME_KERNELPAR 7 121 #define TIME_INITUPDPAR 8 122 123 /* size/indices for timing array in parallel kernel */ 124 #define KERNELPAR_TIME_SLOTS 4 125 126 #define TIME_PIVOT 0 127 #define TIME_PIVOT_WAIT 1 128 #define TIME_CMOD 2 129 #define TIME_CMOD_WAIT 3 130