1 #ifndef RELAPACK_CONFIG_H 2 #define RELAPACK_CONFIG_H 3 4 // ReLAPACK configuration file. 5 // See also config.md 6 7 8 /////////////////////////////// 9 // BLAS/LAPACK obect symbols // 10 /////////////////////////////// 11 12 // BLAS routines linked against have a trailing underscore 13 #define BLAS_UNDERSCORE 1 14 // LAPACK routines linked against have a trailing underscore 15 #define LAPACK_UNDERSCORE BLAS_UNDERSCORE 16 17 // Complex BLAS/LAPACK routines return their result in the first argument 18 // This option must be enabled when linking to MKL for ctrsyl and ztrsyl to 19 // work. 20 #define COMPLEX_FUNCTIONS_AS_ROUTINES 0 21 #ifdef F_INTERFACE_INTEL 22 #define COMPLEX_FUNCTIONS_AS_ROUTINES 1 23 #endif 24 #define BLAS_COMPLEX_FUNCTIONS_AS_ROUTINES COMPLEX_FUNCTIONS_AS_ROUTINES 25 #define LAPACK_BLAS_COMPLEX_FUNCTIONS_AS_ROUTINES COMPLEX_FUNCTIONS_AS_ROUTINES 26 27 // The BLAS-like extension xgemmt is provided by an external library. 28 #define HAVE_XGEMMT 0 29 30 31 //////////////////////////// 32 // Use malloc in ReLAPACK // 33 //////////////////////////// 34 35 #define ALLOW_MALLOC 1 36 // allow malloc in xsygst for improved performance 37 #define XSYGST_ALLOW_MALLOC ALLOW_MALLOC 38 // allow malloc in xsytrf if the passed work buffer is too small 39 //#define XSYTRF_ALLOW_MALLOC ALLOW_MALLOC 40 #define XSYTRF_ALLOW_MALLOC 0 41 42 //////////////////////////////// 43 // LAPACK routine replacement // 44 //////////////////////////////// 45 // The following macros specify which routines are included in the library under 46 // LAPACK's symbol names: 1 included, 0 not included 47 48 #define INCLUDE_ALL 1 49 50 #define INCLUDE_XLAUUM INCLUDE_ALL 51 #define INCLUDE_SLAUUM INCLUDE_XLAUUM 52 #define INCLUDE_DLAUUM INCLUDE_XLAUUM 53 #define INCLUDE_CLAUUM INCLUDE_XLAUUM 54 #define INCLUDE_ZLAUUM INCLUDE_XLAUUM 55 56 #define INCLUDE_XSYGST INCLUDE_ALL 57 #define INCLUDE_SSYGST INCLUDE_XSYGST 58 #define INCLUDE_DSYGST INCLUDE_XSYGST 59 #define INCLUDE_CHEGST INCLUDE_XSYGST 60 #define INCLUDE_ZHEGST INCLUDE_XSYGST 61 62 #define INCLUDE_XTRTRI INCLUDE_ALL 63 #define INCLUDE_STRTRI INCLUDE_XTRTRI 64 #define INCLUDE_DTRTRI INCLUDE_XTRTRI 65 #define INCLUDE_CTRTRI INCLUDE_XTRTRI 66 #define INCLUDE_ZTRTRI INCLUDE_XTRTRI 67 68 #define INCLUDE_XPOTRF INCLUDE_ALL 69 #define INCLUDE_SPOTRF INCLUDE_XPOTRF 70 #define INCLUDE_DPOTRF INCLUDE_XPOTRF 71 #define INCLUDE_CPOTRF INCLUDE_XPOTRF 72 #define INCLUDE_ZPOTRF INCLUDE_XPOTRF 73 74 #define INCLUDE_XPBTRF INCLUDE_ALL 75 #define INCLUDE_SPBTRF INCLUDE_XPBTRF 76 #define INCLUDE_DPBTRF INCLUDE_XPBTRF 77 #define INCLUDE_CPBTRF INCLUDE_XPBTRF 78 #define INCLUDE_ZPBTRF INCLUDE_XPBTRF 79 80 #define INCLUDE_XSYTRF INCLUDE_ALL 81 #define INCLUDE_SSYTRF INCLUDE_XSYTRF 82 #define INCLUDE_DSYTRF INCLUDE_XSYTRF 83 #define INCLUDE_CSYTRF INCLUDE_XSYTRF 84 #define INCLUDE_CHETRF INCLUDE_XSYTRF 85 #define INCLUDE_ZSYTRF INCLUDE_XSYTRF 86 #define INCLUDE_ZHETRF INCLUDE_XSYTRF 87 #define INCLUDE_SSYTRF_ROOK INCLUDE_SSYTRF 88 #define INCLUDE_DSYTRF_ROOK INCLUDE_DSYTRF 89 #define INCLUDE_CSYTRF_ROOK INCLUDE_CSYTRF 90 #define INCLUDE_CHETRF_ROOK INCLUDE_CHETRF 91 #define INCLUDE_ZSYTRF_ROOK INCLUDE_ZSYTRF 92 #define INCLUDE_ZHETRF_ROOK INCLUDE_ZHETRF 93 94 #define INCLUDE_XGETRF INCLUDE_ALL 95 #define INCLUDE_SGETRF INCLUDE_XGETRF 96 #define INCLUDE_DGETRF INCLUDE_XGETRF 97 #define INCLUDE_CGETRF INCLUDE_XGETRF 98 #define INCLUDE_ZGETRF INCLUDE_XGETRF 99 100 #define INCLUDE_XGBTRF INCLUDE_ALL 101 #define INCLUDE_SGBTRF INCLUDE_XGBTRF 102 #define INCLUDE_DGBTRF INCLUDE_XGBTRF 103 #define INCLUDE_CGBTRF INCLUDE_XGBTRF 104 #define INCLUDE_ZGBTRF INCLUDE_XGBTRF 105 106 #define INCLUDE_XTRSYL INCLUDE_ALL 107 #define INCLUDE_STRSYL INCLUDE_XTRSYL 108 #define INCLUDE_DTRSYL INCLUDE_XTRSYL 109 #define INCLUDE_CTRSYL INCLUDE_XTRSYL 110 #define INCLUDE_ZTRSYL INCLUDE_XTRSYL 111 112 #define INCLUDE_XTGSYL INCLUDE_ALL 113 #define INCLUDE_STGSYL INCLUDE_XTGSYL 114 #define INCLUDE_DTGSYL INCLUDE_XTGSYL 115 #define INCLUDE_CTGSYL INCLUDE_XTGSYL 116 #define INCLUDE_ZTGSYL INCLUDE_XTGSYL 117 118 #define INCLUDE_XGEMMT 0 119 #define INCLUDE_SGEMMT INCLUDE_XGEMMT 120 #define INCLUDE_DGEMMT INCLUDE_XGEMMT 121 #define INCLUDE_CGEMMT INCLUDE_XGEMMT 122 #define INCLUDE_ZGEMMT INCLUDE_XGEMMT 123 124 125 ///////////////////// 126 // crossover sizes // 127 ///////////////////// 128 129 // default crossover size 130 #define CROSSOVER 24 131 132 // individual crossover sizes 133 #define CROSSOVER_XLAUUM CROSSOVER 134 #define CROSSOVER_SLAUUM CROSSOVER_XLAUUM 135 #define CROSSOVER_DLAUUM CROSSOVER_XLAUUM 136 #define CROSSOVER_CLAUUM CROSSOVER_XLAUUM 137 #define CROSSOVER_ZLAUUM CROSSOVER_XLAUUM 138 139 #define CROSSOVER_XSYGST CROSSOVER 140 #define CROSSOVER_SSYGST CROSSOVER_XSYGST 141 #define CROSSOVER_DSYGST CROSSOVER_XSYGST 142 #define CROSSOVER_CHEGST CROSSOVER_XSYGST 143 #define CROSSOVER_ZHEGST CROSSOVER_XSYGST 144 145 #define CROSSOVER_XTRTRI CROSSOVER 146 #define CROSSOVER_STRTRI CROSSOVER_XTRTRI 147 #define CROSSOVER_DTRTRI CROSSOVER_XTRTRI 148 #define CROSSOVER_CTRTRI CROSSOVER_XTRTRI 149 #define CROSSOVER_ZTRTRI CROSSOVER_XTRTRI 150 151 #define CROSSOVER_XPOTRF CROSSOVER 152 #define CROSSOVER_SPOTRF CROSSOVER_XPOTRF 153 #define CROSSOVER_DPOTRF CROSSOVER_XPOTRF 154 #define CROSSOVER_CPOTRF CROSSOVER_XPOTRF 155 #define CROSSOVER_ZPOTRF CROSSOVER_XPOTRF 156 157 #define CROSSOVER_XPBTRF CROSSOVER 158 #define CROSSOVER_SPBTRF CROSSOVER_XPBTRF 159 #define CROSSOVER_DPBTRF CROSSOVER_XPBTRF 160 #define CROSSOVER_CPBTRF CROSSOVER_XPBTRF 161 #define CROSSOVER_ZPBTRF CROSSOVER_XPBTRF 162 163 #define CROSSOVER_XSYTRF CROSSOVER 164 #define CROSSOVER_SSYTRF CROSSOVER_XSYTRF 165 #define CROSSOVER_DSYTRF CROSSOVER_XSYTRF 166 #define CROSSOVER_CSYTRF CROSSOVER_XSYTRF 167 #define CROSSOVER_CHETRF CROSSOVER_XSYTRF 168 #define CROSSOVER_ZSYTRF CROSSOVER_XSYTRF 169 #define CROSSOVER_ZHETRF CROSSOVER_XSYTRF 170 #define CROSSOVER_SSYTRF_ROOK CROSSOVER_SSYTRF 171 #define CROSSOVER_DSYTRF_ROOK CROSSOVER_DSYTRF 172 #define CROSSOVER_CSYTRF_ROOK CROSSOVER_CSYTRF 173 #define CROSSOVER_CHETRF_ROOK CROSSOVER_CHETRF 174 #define CROSSOVER_ZSYTRF_ROOK CROSSOVER_ZSYTRF 175 #define CROSSOVER_ZHETRF_ROOK CROSSOVER_ZHETRF 176 177 #define CROSSOVER_XGETRF CROSSOVER 178 #define CROSSOVER_SGETRF CROSSOVER_XGETRF 179 #define CROSSOVER_DGETRF CROSSOVER_XGETRF 180 #define CROSSOVER_CGETRF CROSSOVER_XGETRF 181 #define CROSSOVER_ZGETRF CROSSOVER_XGETRF 182 183 #define CROSSOVER_XGBTRF CROSSOVER 184 #define CROSSOVER_SGBTRF CROSSOVER_XGBTRF 185 #define CROSSOVER_DGBTRF CROSSOVER_XGBTRF 186 #define CROSSOVER_CGBTRF CROSSOVER_XGBTRF 187 #define CROSSOVER_ZGBTRF CROSSOVER_XGBTRF 188 189 #define CROSSOVER_XTRSYL CROSSOVER 190 #define CROSSOVER_STRSYL CROSSOVER_XTRSYL 191 #define CROSSOVER_DTRSYL CROSSOVER_XTRSYL 192 #define CROSSOVER_CTRSYL CROSSOVER_XTRSYL 193 #define CROSSOVER_ZTRSYL CROSSOVER_XTRSYL 194 195 #define CROSSOVER_XTGSYL CROSSOVER 196 #define CROSSOVER_STGSYL CROSSOVER_XTGSYL 197 #define CROSSOVER_DTGSYL CROSSOVER_XTGSYL 198 #define CROSSOVER_CTGSYL CROSSOVER_XTGSYL 199 #define CROSSOVER_ZTGSYL CROSSOVER_XTGSYL 200 201 // sytrf helper routine 202 #define CROSSOVER_XGEMMT CROSSOVER_XSYTRF 203 #define CROSSOVER_SGEMMT CROSSOVER_XGEMMT 204 #define CROSSOVER_DGEMMT CROSSOVER_XGEMMT 205 #define CROSSOVER_CGEMMT CROSSOVER_XGEMMT 206 #define CROSSOVER_ZGEMMT CROSSOVER_XGEMMT 207 208 #endif /* RELAPACK_CONFIG_H */ 209