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