1 /* 2 Copyright (c) 2009-2014, Jack Poulson 3 All rights reserved. 4 5 This file is part of Elemental and is under the BSD 2-Clause License, 6 which can be found in the LICENSE file in the root directory, or at 7 http://opensource.org/licenses/BSD-2-Clause 8 */ 9 #pragma once 10 #ifndef ELEM_INCLUDEPATHS_HPP 11 #define ELEM_INCLUDEPATHS_HPP 12 13 // BLAS-like routines 14 // ================== 15 #define ELEM_BLAS_INC "elemental/blas-like.hpp" 16 #define ELEM_BLAS_DECL_INC "elemental/blas-like/decl.hpp" 17 #define ELEM_BLAS_IMPL_INC "elemental/blas-like/impl.hpp" 18 19 // Level 1 routines 20 // ---------------- 21 #define ELEM_BLAS1_INC "elemental/blas-like/level1.hpp" 22 23 #define ELEM_ADJOINT_INC \ 24 "elemental/blas-like/level1/Adjoint.hpp" 25 #define ELEM_AXPY_INC \ 26 "elemental/blas-like/level1/Axpy.hpp" 27 #define ELEM_AXPYTRIANGLE_INC \ 28 "elemental/blas-like/level1/AxpyTriangle.hpp" 29 #define ELEM_CONJUGATE_INC \ 30 "elemental/blas-like/level1/Conjugate.hpp" 31 #define ELEM_COPY_INC \ 32 "elemental/blas-like/level1/Copy.hpp" 33 #define ELEM_DIAGONALSCALE_INC \ 34 "elemental/blas-like/level1/DiagonalScale.hpp" 35 #define ELEM_DIAGONALSCALETRAPEZOID_INC \ 36 "elemental/blas-like/level1/DiagonalScaleTrapezoid.hpp" 37 #define ELEM_DIAGONALSOLVE_INC \ 38 "elemental/blas-like/level1/DiagonalSolve.hpp" 39 #define ELEM_DOT_INC \ 40 "elemental/blas-like/level1/Dot.hpp" 41 #define ELEM_DOTU_INC \ 42 "elemental/blas-like/level1/Dotu.hpp" 43 #define ELEM_ENTRYWISEMAP_INC \ 44 "elemental/blas-like/level1/EntrywiseMap.hpp" 45 #define ELEM_HADAMARD_INC \ 46 "elemental/blas-like/level1/Hadamard.hpp" 47 #define ELEM_HILBERTSCHMIDT_INC \ 48 "elemental/blas-like/level1/HilbertSchmidt.hpp" 49 #define ELEM_MAKEHERMITIAN_INC \ 50 "elemental/blas-like/level1/MakeHermitian.hpp" 51 #define ELEM_MAKEREAL_INC \ 52 "elemental/blas-like/level1/MakeReal.hpp" 53 #define ELEM_MAKESYMMETRIC_INC \ 54 "elemental/blas-like/level1/MakeSymmetric.hpp" 55 #define ELEM_MAKETRAPEZOIDAL_INC \ 56 "elemental/blas-like/level1/MakeTrapezoidal.hpp" 57 #define ELEM_MAKETRIANGULAR_INC \ 58 "elemental/blas-like/level1/MakeTriangular.hpp" 59 #define ELEM_MAX_INC \ 60 "elemental/blas-like/level1/Max.hpp" 61 #define ELEM_MAXABS_INC \ 62 "elemental/blas-like/level1/MaxAbs.hpp" 63 #define ELEM_MIN_INC \ 64 "elemental/blas-like/level1/Min.hpp" 65 #define ELEM_MINABS_INC \ 66 "elemental/blas-like/level1/MinAbs.hpp" 67 #define ELEM_NRM2_INC \ 68 "elemental/blas-like/level1/Nrm2.hpp" 69 #define ELEM_QUASIDIAGONALSCALE_INC \ 70 "elemental/blas-like/level1/QuasiDiagonalScale.hpp" 71 #define ELEM_QUASIDIAGONALSOLVE_INC \ 72 "elemental/blas-like/level1/QuasiDiagonalSolve.hpp" 73 #define ELEM_SCALE_INC \ 74 "elemental/blas-like/level1/Scale.hpp" 75 #define ELEM_SCALETRAPEZOID_INC \ 76 "elemental/blas-like/level1/ScaleTrapezoid.hpp" 77 #define ELEM_SETDIAGONAL_INC \ 78 "elemental/blas-like/level1/SetDiagonal.hpp" 79 #define ELEM_SWAP_INC \ 80 "elemental/blas-like/level1/Swap.hpp" 81 #define ELEM_SYMMETRIC2X2INV_INC \ 82 "elemental/blas-like/level1/Symmetric2x2Inv.hpp" 83 #define ELEM_SYMMETRIC2X2SCALE_INC \ 84 "elemental/blas-like/level1/Symmetric2x2Scale.hpp" 85 #define ELEM_SYMMETRIC2X2SOLVE_INC \ 86 "elemental/blas-like/level1/Symmetric2x2Solve.hpp" 87 #define ELEM_TRANSPOSE_INC \ 88 "elemental/blas-like/level1/Transpose.hpp" 89 #define ELEM_UPDATEDIAGONAL_INC \ 90 "elemental/blas-like/level1/UpdateDiagonal.hpp" 91 #define ELEM_ZERO_INC \ 92 "elemental/blas-like/level1/Zero.hpp" 93 94 // Level 2 routines 95 // ---------------- 96 #define ELEM_BLAS2_INC "elemental/blas-like/level2.hpp" 97 98 #define ELEM_GEMV_INC \ 99 "elemental/blas-like/level2/Gemv.hpp" 100 #define ELEM_GER_INC \ 101 "elemental/blas-like/level2/Ger.hpp" 102 #define ELEM_GERU_INC \ 103 "elemental/blas-like/level2/Geru.hpp" 104 #define ELEM_HEMV_INC \ 105 "elemental/blas-like/level2/Hemv.hpp" 106 #define ELEM_HER2_INC \ 107 "elemental/blas-like/level2/Her2.hpp" 108 #define ELEM_HER_INC \ 109 "elemental/blas-like/level2/Her.hpp" 110 #define ELEM_QUASITRSV_INC \ 111 "elemental/blas-like/level2/QuasiTrsv.hpp" 112 #define ELEM_SYMV_INC \ 113 "elemental/blas-like/level2/Symv.hpp" 114 #define ELEM_SYR2_INC \ 115 "elemental/blas-like/level2/Syr2.hpp" 116 #define ELEM_SYR_INC \ 117 "elemental/blas-like/level2/Syr.hpp" 118 #define ELEM_TRMV_INC \ 119 "elemental/blas-like/level2/Trmv.hpp" 120 #define ELEM_TRR2_INC \ 121 "elemental/blas-like/level2/Trr2.hpp" 122 #define ELEM_TRR_INC \ 123 "elemental/blas-like/level2/Trr.hpp" 124 #define ELEM_TRSV_INC \ 125 "elemental/blas-like/level2/Trsv.hpp" 126 127 // Level 3 routines 128 // ---------------- 129 #define ELEM_BLAS3_INC "elemental/blas-like/level3.hpp" 130 131 #define ELEM_GEMM_INC "elemental/blas-like/level3/Gemm.hpp" 132 #define ELEM_HEMM_INC "elemental/blas-like/level3/Hemm.hpp" 133 #define ELEM_HER2K_INC "elemental/blas-like/level3/Her2k.hpp" 134 #define ELEM_HERK_INC "elemental/blas-like/level3/Herk.hpp" 135 #define ELEM_MULTISHIFTQUASITRSM_INC \ 136 "elemental/blas-like/level3/MultiShiftQuasiTrsm.hpp" 137 #define ELEM_MULTISHIFTTRSM_INC \ 138 "elemental/blas-like/level3/MultiShiftTrsm.hpp" 139 #define ELEM_QUASITRSM_INC "elemental/blas-like/level3/QuasiTrsm.hpp" 140 #define ELEM_SYMM_INC "elemental/blas-like/level3/Symm.hpp" 141 #define ELEM_SYR2K_INC "elemental/blas-like/level3/Syr2k.hpp" 142 #define ELEM_SYRK_INC "elemental/blas-like/level3/Syrk.hpp" 143 #define ELEM_TRDTRMM_INC "elemental/blas-like/level3/Trdtrmm.hpp" 144 #define ELEM_TRMM_INC "elemental/blas-like/level3/Trmm.hpp" 145 #define ELEM_TRSM_INC "elemental/blas-like/level3/Trsm.hpp" 146 #define ELEM_TRSTRM_INC "elemental/blas-like/level3/Trstrm.hpp" 147 #define ELEM_TRTRMM_INC "elemental/blas-like/level3/Trtrmm.hpp" 148 #define ELEM_TWOSIDEDTRMM_INC "elemental/blas-like/level3/TwoSidedTrmm.hpp" 149 #define ELEM_TWOSIDEDTRSM_INC "elemental/blas-like/level3/TwoSidedTrsm.hpp" 150 151 // LAPACK-like routines 152 // ==================== 153 #define ELEM_LAPACK_INC "elemental/lapack-like.hpp" 154 #define ELEM_LAPACK_DECL_INC "elemental/lapack-like/decl.hpp" 155 #define ELEM_LAPACK_IMPL_INC "elemental/lapack-like/impl.hpp" 156 157 // Reduction to condensed form 158 // --------------------------- 159 #define ELEM_CONDENSE_INC "elemental/lapack-like/condense.hpp" 160 #define ELEM_CONDENSE_DECL_INC "elemental/lapack-like/condense/decl.hpp" 161 #define ELEM_CONDENSE_IMPL_INC "elemental/lapack-like/condense/impl.hpp" 162 163 #define ELEM_BIDIAG_INC \ 164 "elemental/lapack-like/condense/Bidiag.hpp" 165 #define ELEM_HERMITIANTRIDIAG_INC \ 166 "elemental/lapack-like/condense/HermitianTridiag.hpp" 167 #define ELEM_HESSENBERG_INC \ 168 "elemental/lapack-like/condense/Hessenberg.hpp" 169 170 // Decompositions 171 // -------------- 172 #define ELEM_DECOMP_INC "elemental/lapack-like/decomp.hpp" 173 #define ELEM_DECOMP_DECL_INC "elemental/lapack-like/decomp/decl.hpp" 174 #define ELEM_DECOMP_IMPL_INC "elemental/lapack-like/decomp/impl.hpp" 175 176 #define ELEM_HERMITIANEIG_INC \ 177 "elemental/lapack-like/decomp/HermitianEig.hpp" 178 #define ELEM_HERMITIANGENDEFINITEEIG_INC \ 179 "elemental/lapack-like/decomp/HermitianGenDefiniteEig.hpp" 180 #define ELEM_HERMITIANTRIDIAGEIG_INC \ 181 "elemental/lapack-like/decomp/HermitianTridiagEig.hpp" 182 #define ELEM_POLAR_INC \ 183 "elemental/lapack-like/decomp/Polar.hpp" 184 #define ELEM_SCHUR_INC \ 185 "elemental/lapack-like/decomp/Schur.hpp" 186 #define ELEM_SKEWHERMITIANEIG_INC \ 187 "elemental/lapack-like/decomp/SkewHermitianEig.hpp" 188 #define ELEM_SVD_INC \ 189 "elemental/lapack-like/decomp/SVD.hpp" 190 191 // Specific HermitianEig routines 192 // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 193 #define ELEM_HERMITIANEIG_SDC_INC \ 194 "elemental/lapack-like/decomp/HermitianEig/SDC.hpp" 195 196 // Specific HermitianTridiagEig routines 197 // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 198 #define ELEM_HERMITIANTRIDIAGEIG_SORT_INC \ 199 "elemental/lapack-like/decomp/HermitianTridiagEig/Sort.hpp" 200 201 // Specific Polar routines 202 // ^^^^^^^^^^^^^^^^^^^^^^^ 203 #define ELEM_POLAR_QDWH_INC \ 204 "elemental/lapack-like/decomp/Polar/QDWH.hpp" 205 #define ELEM_POLAR_SVD_INC \ 206 "elemental/lapack-like/decomp/Polar/SVD.hpp" 207 208 // Specific Schur routines 209 // ^^^^^^^^^^^^^^^^^^^^^^^ 210 #define ELEM_SCHUR_INVERSEFREESDC_INC \ 211 "elemental/lapack-like/decomp/Schur/InverseFreeSDC.hpp" 212 #define ELEM_SCHUR_QR_INC \ 213 "elemental/lapack-like/decomp/Schur/QR.hpp" 214 #define ELEM_SCHUR_SDC_INC \ 215 "elemental/lapack-like/decomp/Schur/SDC.hpp" 216 217 // Factorizations 218 // -------------- 219 #define ELEM_FACTOR_INC "elemental/lapack-like/factor.hpp" 220 #define ELEM_FACTOR_DECL_INC "elemental/lapack-like/factor/decl.hpp" 221 #define ELEM_FACTOR_IMPL_INC "elemental/lapack-like/factor/impl.hpp" 222 223 #define ELEM_CHOLESKY_INC \ 224 "elemental/lapack-like/factor/Cholesky.hpp" 225 #define ELEM_LDL_INC \ 226 "elemental/lapack-like/factor/LDL.hpp" 227 #define ELEM_LU_INC \ 228 "elemental/lapack-like/factor/LU.hpp" 229 230 #define ELEM_LQ_INC \ 231 "elemental/lapack-like/factor/LQ.hpp" 232 #define ELEM_QR_INC \ 233 "elemental/lapack-like/factor/QR.hpp" 234 #define ELEM_RQ_INC \ 235 "elemental/lapack-like/factor/RQ.hpp" 236 237 #define ELEM_GQR_INC \ 238 "elemental/lapack-like/factor/GQR.hpp" 239 #define ELEM_GRQ_INC \ 240 "elemental/lapack-like/factor/GRQ.hpp" 241 242 #define ELEM_ID_INC \ 243 "elemental/lapack-like/factor/ID.hpp" 244 #define ELEM_SKELETON_INC \ 245 "elemental/lapack-like/factor/Skeleton.hpp" 246 247 // Specific LDL routines 248 // ^^^^^^^^^^^^^^^^^^^^^ 249 #define ELEM_LDL_INERTIA_INC \ 250 "elemental/lapack-like/factor/LDL/Inertia.hpp" 251 #define ELEM_LDL_MULTIPLYAFTER_INC \ 252 "elemental/lapack-like/factor/LDL/MultiplyAfter.hpp" 253 #define ELEM_LDL_PIVOTED_INC \ 254 "elemental/lapack-like/factor/LDL/Pivoted.hpp" 255 #define ELEM_LDL_SOLVEAFTER_INC \ 256 "elemental/lapack-like/factor/LDL/SolveAfter.hpp" 257 #define ELEM_LDL_VAR3_INC \ 258 "elemental/lapack-like/factor/LDL/Var3.hpp" 259 260 // Specific LQ routines 261 // ^^^^^^^^^^^^^^^^^^^^ 262 #define ELEM_LQ_APPLYQ_INC \ 263 "elemental/lapack-like/factor/LQ/ApplyQ.hpp" 264 #define ELEM_LQ_EXPLICIT_INC \ 265 "elemental/lapack-like/factor/LQ/Explicit.hpp" 266 #define ELEM_LQ_HOUSEHOLDER_INC \ 267 "elemental/lapack-like/factor/LQ/Householder.hpp" 268 #define ELEM_LQ_PANELHOUSEHOLDER_INC \ 269 "elemental/lapack-like/factor/LQ/PanelHouseholder.hpp" 270 271 // Specific LU routines 272 // ^^^^^^^^^^^^^^^^^^^^ 273 #define ELEM_LU_FULL_INC \ 274 "elemental/lapack-like/factor/LU/Full.hpp" 275 #define ELEM_LU_LOCAL_INC \ 276 "elemental/lapack-like/factor/LU/Local.hpp" 277 #define ELEM_LU_PANEL_INC \ 278 "elemental/lapack-like/factor/LU/Panel.hpp" 279 #define ELEM_LU_SOLVEAFTER_INC \ 280 "elemental/lapack-like/factor/LU/SolveAfter.hpp" 281 282 // Specific QR routines 283 // ^^^^^^^^^^^^^^^^^^^^ 284 #define ELEM_QR_APPLYQ_INC \ 285 "elemental/lapack-like/factor/QR/ApplyQ.hpp" 286 #define ELEM_QR_BUSINGERGOLUB_INC \ 287 "elemental/lapack-like/factor/QR/BusingerGolub.hpp" 288 #define ELEM_QR_CHOLESKY_INC \ 289 "elemental/lapack-like/factor/QR/Cholesky.hpp" 290 #define ELEM_QR_EXPLICIT_INC \ 291 "elemental/lapack-like/factor/QR/Explicit.hpp" 292 #define ELEM_QR_HOUSEHOLDER_INC \ 293 "elemental/lapack-like/factor/QR/Householder.hpp" 294 #define ELEM_QR_PANELHOUSEHOLDER_INC \ 295 "elemental/lapack-like/factor/QR/PanelHouseholder.hpp" 296 #define ELEM_QR_TS_INC \ 297 "elemental/lapack-like/factor/QR/TS.hpp" 298 299 // Specific RQ routines 300 // ^^^^^^^^^^^^^^^^^^^^ 301 #define ELEM_RQ_APPLYQ_INC \ 302 "elemental/lapack-like/factor/RQ/ApplyQ.hpp" 303 #define ELEM_RQ_CHOLESKY_INC \ 304 "elemental/lapack-like/factor/RQ/Cholesky.hpp" 305 #define ELEM_RQ_HOUSEHOLDER_INC \ 306 "elemental/lapack-like/factor/RQ/Householder.hpp" 307 #define ELEM_RQ_PANELHOUSEHOLDER_INC \ 308 "elemental/lapack-like/factor/RQ/PanelHouseholder.hpp" 309 310 // Matrix functions 311 // ---------------- 312 #define ELEM_FUNCS_INC "elemental/lapack-like/funcs.hpp" 313 #define ELEM_FUNCS_DECL_INC "elemental/lapack-like/funcs/decl.hpp" 314 #define ELEM_FUNCS_IMPL_INC "elemental/lapack-like/funcs/impl.hpp" 315 316 #define ELEM_HERMITIANFUNCTION_INC \ 317 "elemental/lapack-like/funcs/HermitianFunction.hpp" 318 #define ELEM_INVERSE_INC \ 319 "elemental/lapack-like/funcs/Inverse.hpp" 320 #define ELEM_PSEUDOINVERSE_INC \ 321 "elemental/lapack-like/funcs/Pseudoinverse.hpp" 322 #define ELEM_SIGN_INC \ 323 "elemental/lapack-like/funcs/Sign.hpp" 324 #define ELEM_SQUAREROOT_INC \ 325 "elemental/lapack-like/funcs/SquareRoot.hpp" 326 // Specific inversion routines 327 // ^^^^^^^^^^^^^^^^^^^^^^^^^^^ 328 #define ELEM_TRIANGULARINVERSE_INC \ 329 "elemental/lapack-like/funcs/Inverse/Triangular.hpp" 330 #define ELEM_GENERALINVERSE_INC \ 331 "elemental/lapack-like/funcs/Inverse/General.hpp" 332 #define ELEM_HPDINVERSE_INC \ 333 "elemental/lapack-like/funcs/Inverse/HPD.hpp" 334 #define ELEM_SYMMETRICINVERSE_INC \ 335 "elemental/lapack-like/funcs/Inverse/Symmetric.hpp" 336 #define ELEM_HERMITIANINVERSE_INC \ 337 "elemental/lapack-like/funcs/Inverse/Hermitian.hpp" 338 339 // Permutations 340 // ------------ 341 #define ELEM_APPLYCOLPIVOTS_INC \ 342 "elemental/lapack-like/perm/ApplyColPivots.hpp" 343 #define ELEM_APPLYROWPIVOTS_INC \ 344 "elemental/lapack-like/perm/ApplyRowPivots.hpp" 345 #define ELEM_APPLYSYMMETRICPIVOTS_INC \ 346 "elemental/lapack-like/perm/ApplySymmetricPivots.hpp" 347 #define ELEM_EXPLICITPERMUTATION_INC \ 348 "elemental/lapack-like/perm/ExplicitPermutation.hpp" 349 #define ELEM_INVERTPERMUTATION_INC \ 350 "elemental/lapack-like/perm/InvertPermutation.hpp" 351 #define ELEM_PERMUTATIONMETA_INC \ 352 "elemental/lapack-like/perm/PermutationMeta.hpp" 353 #define ELEM_PERMUTECOLS_INC \ 354 "elemental/lapack-like/perm/PermuteCols.hpp" 355 #define ELEM_PERMUTEROWS_INC \ 356 "elemental/lapack-like/perm/PermuteRows.hpp" 357 #define ELEM_PIVOTSTOPARTIALPERMUTATION_INC \ 358 "elemental/lapack-like/perm/PivotsToPartialPermutation.hpp" 359 #define ELEM_PIVOTSTOPERMUTATION_INC \ 360 "elemental/lapack-like/perm/PivotsToPermutation.hpp" 361 362 // Matrix properties 363 // ----------------- 364 #define ELEM_PROPS_INC "elemental/lapack-like/props.hpp" 365 #define ELEM_PROPS_DECL_INC "elemental/lapack-like/props/decl.hpp" 366 #define ELEM_PROPS_IMPL_INC "elemental/lapack-like/props/impl.hpp" 367 368 #define ELEM_CONDITION_INC \ 369 "elemental/lapack-like/props/Condition.hpp" 370 #define ELEM_DETERMINANT_INC \ 371 "elemental/lapack-like/props/Determinant.hpp" 372 #define ELEM_INERTIA_INC \ 373 "elemental/lapack-like/props/Inertia.hpp" 374 #define ELEM_NORM_INC \ 375 "elemental/lapack-like/props/Norm.hpp" 376 #define ELEM_PSEUDOSPECTRUM_INC \ 377 "elemental/lapack-like/props/Pseudospectrum.hpp" 378 #define ELEM_TRACE_INC \ 379 "elemental/lapack-like/props/Trace.hpp" 380 // Specific condition-number routines 381 // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 382 #define ELEM_FROBENIUSCONDITION_INC \ 383 "elemental/lapack-like/props/Condition/Frobenius.hpp" 384 #define ELEM_INFINITYCONDITION_INC \ 385 "elemental/lapack-like/props/Condition/Infinity.hpp" 386 #define ELEM_MAXCONDITION_INC \ 387 "elemental/lapack-like/props/Condition/Max.hpp" 388 #define ELEM_ONECONDITION_INC \ 389 "elemental/lapack-like/props/Condition/One.hpp" 390 #define ELEM_TWOCONDITION_INC \ 391 "elemental/lapack-like/props/Condition/Two.hpp" 392 // Specific norm routines 393 // ^^^^^^^^^^^^^^^^^^^^^^ 394 #define ELEM_ENTRYWISENORM_INC \ 395 "elemental/lapack-like/props/Norm/Entrywise.hpp" 396 #define ELEM_ENTRYWISEONENORM_INC \ 397 "elemental/lapack-like/props/Norm/EntrywiseOne.hpp" 398 #define ELEM_FROBENIUSNORM_INC \ 399 "elemental/lapack-like/props/Norm/Frobenius.hpp" 400 #define ELEM_INFINITYNORM_INC \ 401 "elemental/lapack-like/props/Norm/Infinity.hpp" 402 #define ELEM_KYFANNORM_INC \ 403 "elemental/lapack-like/props/Norm/KyFan.hpp" 404 #define ELEM_MAXNORM_INC \ 405 "elemental/lapack-like/props/Norm/Max.hpp" 406 #define ELEM_NUCLEARNORM_INC \ 407 "elemental/lapack-like/props/Norm/Nuclear.hpp" 408 #define ELEM_ONENORM_INC \ 409 "elemental/lapack-like/props/Norm/One.hpp" 410 #define ELEM_SCHATTENNORM_INC \ 411 "elemental/lapack-like/props/Norm/Schatten.hpp" 412 #define ELEM_TWONORMESTIMATE_INC \ 413 "elemental/lapack-like/props/Norm/TwoEstimate.hpp" 414 #define ELEM_TWONORM_INC \ 415 "elemental/lapack-like/props/Norm/Two.hpp" 416 #define ELEM_ZERONORM_INC \ 417 "elemental/lapack-like/props/Norm/Zero.hpp" 418 419 // Solvers 420 // ------- 421 #define ELEM_SOLVE_INC "elemental/lapack-like/solve.hpp" 422 #define ELEM_SOLVE_DECL_INC "elemental/lapack-like/solve/decl.hpp" 423 #define ELEM_SOLVE_IMPL_INC "elemental/lapack-like/solve/impl.hpp" 424 425 #define ELEM_GAUSSIANELIMINATION_INC \ 426 "elemental/lapack-like/solve/GaussianElimination.hpp" 427 #define ELEM_HPDSOLVE_INC \ 428 "elemental/lapack-like/solve/HPDSolve.hpp" 429 430 #define ELEM_HERMITIANSOLVE_INC \ 431 "elemental/lapack-like/solve/HermitianSolve.hpp" 432 #define ELEM_SYMMETRICSOLVE_INC \ 433 "elemental/lapack-like/solve/SymmetricSolve.hpp" 434 435 #define ELEM_LEASTSQUARES_INC \ 436 "elemental/lapack-like/solve/LeastSquares.hpp" 437 438 #define ELEM_GLM_INC \ 439 "elemental/lapack-like/solve/GLM.hpp" 440 #define ELEM_LSE_INC \ 441 "elemental/lapack-like/solve/LSE.hpp" 442 443 #define ELEM_MULTISHIFTHESSSOLVE_INC \ 444 "elemental/lapack-like/solve/MultiShiftHessSolve.hpp" 445 446 // Utilities 447 // --------- 448 #define ELEM_LAPACKUTIL_INC "elemental/lapack-like/util.hpp" 449 #define ELEM_LAPACKUTIL_DECL_INC "elemental/lapack-like/util/decl.hpp" 450 #define ELEM_LAPACKUTIL_IMPL_INC "elemental/lapack-like/util/impl.hpp" 451 452 #define ELEM_APPLYPACKEDREFLECTORS_INC \ 453 "elemental/lapack-like/util/ApplyPackedReflectors.hpp" 454 #define ELEM_EXPANDPACKEDREFLECTORS_INC \ 455 "elemental/lapack-like/util/ExpandPackedReflectors.hpp" 456 #define ELEM_HYPERBOLICREFLECTOR_INC \ 457 "elemental/lapack-like/util/HyperbolicReflector.hpp" 458 #define ELEM_MEDIAN_INC \ 459 "elemental/lapack-like/util/Median.hpp" 460 #define ELEM_PERMUTATIONPARITY_INC \ 461 "elemental/lapack-like/util/PermutationParity.hpp" 462 #define ELEM_PIVOTPARITY_INC \ 463 "elemental/lapack-like/util/PivotParity.hpp" 464 #define ELEM_REFLECTOR_INC \ 465 "elemental/lapack-like/util/Reflector.hpp" 466 #define ELEM_SORT_INC \ 467 "elemental/lapack-like/util/Sort.hpp" 468 469 // Special matrices 470 // ================ 471 #define ELEM_MATRICES_INC "elemental/matrices.hpp" 472 #define ELEM_MATRICES_DECL_INC "elemental/matrices/decl.hpp" 473 #define ELEM_MATRICES_IMPL_INC "elemental/matrices/impl.hpp" 474 475 // Deterministic matrices 476 // ---------------------- 477 #define ELEM_BULLSHEAD_INC "elemental/matrices/BullsHead.hpp" 478 #define ELEM_CAUCHY_INC "elemental/matrices/Cauchy.hpp" 479 #define ELEM_CAUCHYLIKE_INC "elemental/matrices/CauchyLike.hpp" 480 #define ELEM_CIRCULANT_INC "elemental/matrices/Circulant.hpp" 481 #define ELEM_DEMMEL_INC "elemental/matrices/Demmel.hpp" 482 #define ELEM_DIAGONAL_INC "elemental/matrices/Diagonal.hpp" 483 #define ELEM_EGOROV_INC "elemental/matrices/Egorov.hpp" 484 #define ELEM_EXTENDEDKAHAN_INC "elemental/matrices/ExtendedKahan.hpp" 485 #define ELEM_FIEDLER_INC "elemental/matrices/Fiedler.hpp" 486 #define ELEM_FORSYTHE_INC "elemental/matrices/Forsythe.hpp" 487 #define ELEM_FOURIER_INC "elemental/matrices/Fourier.hpp" 488 #define ELEM_FOXLI_INC "elemental/matrices/FoxLi.hpp" 489 #define ELEM_GCDMATRIX_INC "elemental/matrices/GCDMatrix.hpp" 490 #define ELEM_GEAR_INC "elemental/matrices/Gear.hpp" 491 #define ELEM_GKS_INC "elemental/matrices/GKS.hpp" 492 #define ELEM_GRCAR_INC "elemental/matrices/Grcar.hpp" 493 #define ELEM_HANKEL_INC "elemental/matrices/Hankel.hpp" 494 #define ELEM_HANOWA_INC "elemental/matrices/Hanowa.hpp" 495 #define ELEM_HELMHOLTZ_INC "elemental/matrices/Helmholtz.hpp" 496 #define ELEM_HELMHOLTZPML_INC "elemental/matrices/HelmholtzPML.hpp" 497 #define ELEM_HERMITIANFROMEVD_INC "elemental/matrices/HermitianFromEVD.hpp" 498 #define ELEM_HILBERT_INC "elemental/matrices/Hilbert.hpp" 499 #define ELEM_IDENTITY_INC "elemental/matrices/Identity.hpp" 500 #define ELEM_JORDAN_INC "elemental/matrices/Jordan.hpp" 501 #define ELEM_KAHAN_INC "elemental/matrices/Kahan.hpp" 502 #define ELEM_KMS_INC "elemental/matrices/KMS.hpp" 503 #define ELEM_LAPLACIAN_INC "elemental/matrices/Laplacian.hpp" 504 #define ELEM_LAUCHLI_INC "elemental/matrices/Lauchli.hpp" 505 #define ELEM_LEGENDRE_INC "elemental/matrices/Legendre.hpp" 506 #define ELEM_LEHMER_INC "elemental/matrices/Lehmer.hpp" 507 #define ELEM_LOTKIN_INC "elemental/matrices/Lotkin.hpp" 508 #define ELEM_MINIJ_INC "elemental/matrices/MinIJ.hpp" 509 #define ELEM_NORMALFROMEVD_INC "elemental/matrices/NormalFromEVD.hpp" 510 #define ELEM_ONES_INC "elemental/matrices/Ones.hpp" 511 #define ELEM_ONETWOONE_INC "elemental/matrices/OneTwoOne.hpp" 512 #define ELEM_PARTER_INC "elemental/matrices/Parter.hpp" 513 #define ELEM_PEI_INC "elemental/matrices/Pei.hpp" 514 #define ELEM_REDHEFFER_INC "elemental/matrices/Redheffer.hpp" 515 #define ELEM_RIEMANN_INC "elemental/matrices/Riemann.hpp" 516 #define ELEM_RIS_INC "elemental/matrices/Ris.hpp" 517 #define ELEM_TOEPLITZ_INC "elemental/matrices/Toeplitz.hpp" 518 #define ELEM_TREFETHEN_INC "elemental/matrices/Trefethen.hpp" 519 #define ELEM_TRIANGLE_INC "elemental/matrices/Triangle.hpp" 520 #define ELEM_TRIW_INC "elemental/matrices/TriW.hpp" 521 #define ELEM_WALSH_INC "elemental/matrices/Walsh.hpp" 522 #define ELEM_WHALE_INC "elemental/matrices/Whale.hpp" 523 #define ELEM_WILKINSON_INC "elemental/matrices/Wilkinson.hpp" 524 #define ELEM_ZEROS_INC "elemental/matrices/Zeros.hpp" 525 526 // Random matrices 527 // --------------- 528 #define ELEM_GAUSSIAN_INC \ 529 "elemental/matrices/Gaussian.hpp" 530 #define ELEM_HAAR_INC \ 531 "elemental/matrices/Haar.hpp" 532 #define ELEM_HATANONELSON_INC \ 533 "elemental/matrices/HatanoNelson.hpp" 534 #define ELEM_HERMITIANUNIFORMSPECTRUM_INC \ 535 "elemental/matrices/HermitianUniformSpectrum.hpp" 536 #define ELEM_NORMALUNIFORMSPECTRUM_INC \ 537 "elemental/matrices/NormalUniformSpectrum.hpp" 538 #define ELEM_UNIFORM_INC \ 539 "elemental/matrices/Uniform.hpp" 540 #define ELEM_UNIFORMHELMHOLTZGREENS_INC \ 541 "elemental/matrices/UniformHelmholtzGreens.hpp" 542 #define ELEM_WIGNER_INC \ 543 "elemental/matrices/Wigner.hpp" 544 545 // Input/output 546 // ============ 547 #define ELEM_IO_INC "elemental/io.hpp" 548 #define ELEM_IO_DECL_INC "elemental/io/decl.hpp" 549 #define ELEM_IO_IMPL_INC "elemental/io/impl.hpp" 550 551 #define ELEM_DISPLAY_INC "elemental/io/Display.hpp" 552 #define ELEM_PRINT_INC "elemental/io/Print.hpp" 553 #define ELEM_READ_INC "elemental/io/Read.hpp" 554 #define ELEM_SPY_INC "elemental/io/Spy.hpp" 555 #define ELEM_WRITE_INC "elemental/io/Write.hpp" 556 557 // Convex optimization 558 // =================== 559 #define ELEM_CONVEX_INC "elemental/convex.hpp" 560 #define ELEM_CONVEX_DECL_INC "elemental/convex/decl.hpp" 561 #define ELEM_CONVEX_IMPL_INC "elemental/convex/impl.hpp" 562 563 // Utilities 564 // --------- 565 #define ELEM_CLIP_INC "elemental/convex/Clip.hpp" 566 #define ELEM_COVARIANCE_INC "elemental/convex/Covariance.hpp" 567 #define ELEM_LOGBARRIER_INC "elemental/convex/LogBarrier.hpp" 568 #define ELEM_LOGDETDIV_INC "elemental/convex/LogDetDiv.hpp" 569 #define ELEM_SOFTTHRESHOLD_INC "elemental/convex/SoftThreshold.hpp" 570 #define ELEM_SVT_INC "elemental/convex/SVT.hpp" 571 // Specific SVT routines 572 // ^^^^^^^^^^^^^^^^^^^^^ 573 #define ELEM_SVT_CROSS_INC "elemental/convex/SVT/Cross.hpp" 574 #define ELEM_SVT_NORMAL_INC "elemental/convex/SVT/Normal.hpp" 575 #define ELEM_SVT_PIVOTEDQR_INC "elemental/convex/SVT/PivotedQR.hpp" 576 #define ELEM_SVT_TSQR_INC "elemental/convex/SVT/TSQR.hpp" 577 578 // ADMM 579 // ---- 580 #define ELEM_BASISPURSUIT_INC "elemental/convex/BasisPursuit.hpp" 581 #define ELEM_LINEARPROGRAM_INC "elemental/convex/LinearProgram.hpp" 582 #define ELEM_QUADRATICPROGRAM_INC "elemental/convex/QuadraticProgram.hpp" 583 #define ELEM_SPARSEINVCOV_INC "elemental/convex/SparseInvCov.hpp" 584 585 586 #endif // ifndef ELEM_INCLUDEPATHS_HPP 587