@@ -118,9 +118,8 @@ See also [`DivideAndConquer`](@ref) and [`QRIteration`](@ref).
118118"""
119119 QRIteration(; [driver], fixgauge = default_fixgauge(), balanced = false)
120120
121- Algorithm type for computing the eigenvalue decomposition of a Hermitian matrix,
122- the singular value decomposition of a general matrix, the non-Hermitian eigenvalue
123- decomposition, or the Schur decomposition of a general matrix via QR iteration.
121+ Algorithm type for computing the eigenvalue, Schur or singular value decomposition of a matrix via QR iteration.
122+
124123
125124For non-Hermitian eigenvalue decomposition and Schur decomposition, the `balanced`
126125keyword argument can be used to enable balancing of the matrix before the QR iteration,
@@ -129,6 +128,7 @@ which can improve numerical accuracy for badly scaled matrices:
129128- `balanced = true`: use the expert balanced driver (`geevx!`/`geesx!`)
130129
131130$_fixgauge_docs
131+
132132The optional `driver` keyword can be used to choose between different implementations of this algorithm.
133133"""
134134@algdef QRIteration
@@ -165,7 +165,6 @@ $_fixgauge_docs
165165The optional `driver` keyword can be used to choose between different implementations of this algorithm.
166166"""
167167@algdef RobustRepresentations
168- Base. @deprecate_binding MultipleRelativelyRobustRepresentations RobustRepresentations false
169168
170169"""
171170 SVDViaPolar(; [driver], fixgauge = default_fixgauge(), [tol])
@@ -198,8 +197,6 @@ $_fixgauge_docs
198197"""
199198@algdef LAPACK_Expert
200199
201- const LAPACK_EigAlgorithm = Union{LAPACK_Simple, LAPACK_Expert}
202-
203200"""
204201 GS_QRIteration()
205202
@@ -246,21 +243,6 @@ $_fixgauge_docs
246243"""
247244@algdef LAPACK_MultipleRelativelyRobustRepresentations
248245
249- const LAPACK_EighAlgorithm = Union{
250- LAPACK_QRIteration,
251- LAPACK_Bisection,
252- LAPACK_DivideAndConquer,
253- LAPACK_MultipleRelativelyRobustRepresentations,
254- }
255-
256- const EighAlgorithms = Union{
257- RobustRepresentations,
258- DivideAndConquer,
259- QRIteration,
260- Bisection,
261- Jacobi,
262- }
263-
264246"""
265247 GLA_QRIteration(; fixgauge = default_fixgauge())
266248
@@ -297,14 +279,6 @@ $_fixgauge_docs
297279"""
298280@algdef LAPACK_Jacobi
299281
300- const LAPACK_SVDAlgorithm = Union{
301- LAPACK_QRIteration,
302- LAPACK_Bisection,
303- LAPACK_DivideAndConquer,
304- LAPACK_Jacobi,
305- LAPACK_SafeDivideAndConquer,
306- }
307-
308282# =========================
309283# Polar decompositions
310284# =========================
@@ -441,8 +415,6 @@ $_fixgauge_docs
441415"""
442416@algdef CUSOLVER_Simple
443417
444- const CUSOLVER_EigAlgorithm = Union{CUSOLVER_Simple}
445-
446418"""
447419 CUSOLVER_DivideAndConquer(; fixgauge = default_fixgauge())
448420
@@ -453,9 +425,6 @@ $_fixgauge_docs
453425"""
454426@algdef CUSOLVER_DivideAndConquer
455427
456- const CUSOLVER_SVDAlgorithm = Union{
457- CUSOLVER_QRIteration, CUSOLVER_SVDPolar, CUSOLVER_Jacobi, CUSOLVER_Randomized,
458- }
459428
460429# =========================
461430# ROCSOLVER ALGORITHMS
@@ -508,28 +477,64 @@ $_fixgauge_docs
508477"""
509478@algdef ROCSOLVER_DivideAndConquer
510479
511- const ROCSOLVER_SVDAlgorithm = Union{ROCSOLVER_QRIteration, ROCSOLVER_Jacobi}
512480
513481# Various consts and unions
514482# -------------------------
515-
516- const GPU_Simple = Union{CUSOLVER_Simple}
517- const GPU_EigAlgorithm = Union{GPU_Simple}
518483const GPU_QRIteration = Union{CUSOLVER_QRIteration, ROCSOLVER_QRIteration}
519484const GPU_Jacobi = Union{CUSOLVER_Jacobi, ROCSOLVER_Jacobi}
520485const GPU_DivideAndConquer = Union{CUSOLVER_DivideAndConquer, ROCSOLVER_DivideAndConquer}
521486const GPU_Bisection = Union{ROCSOLVER_Bisection}
487+ const GPU_Simple = Union{CUSOLVER_Simple}
488+ const GPU_SVDPolar = Union{CUSOLVER_SVDPolar}
489+ const GPU_Randomized = Union{CUSOLVER_Randomized}
490+
491+ const LAPACK_SVDAlgorithm = Union{
492+ LAPACK_QRIteration,
493+ LAPACK_Bisection,
494+ LAPACK_DivideAndConquer,
495+ LAPACK_Jacobi,
496+ LAPACK_SafeDivideAndConquer,
497+ }
498+ const ROCSOLVER_SVDAlgorithm = Union{ROCSOLVER_QRIteration, ROCSOLVER_Jacobi}
499+ const CUSOLVER_SVDAlgorithm = Union{
500+ CUSOLVER_QRIteration, CUSOLVER_SVDPolar, CUSOLVER_Jacobi, CUSOLVER_Randomized,
501+ }
502+ const GPU_SVDAlgorithm = Union{CUSOLVER_SVDAlgorithm, ROCSOLVER_SVDAlgorithm}
503+ const SVDAlgorithms = Union{
504+ SafeDivideAndConquer,
505+ DivideAndConquer,
506+ QRIteration,
507+ Bisection,
508+ Jacobi,
509+ SVDViaPolar,
510+ }
511+
512+ const LAPACK_EighAlgorithm = Union{
513+ LAPACK_QRIteration,
514+ LAPACK_Bisection,
515+ LAPACK_DivideAndConquer,
516+ LAPACK_MultipleRelativelyRobustRepresentations,
517+ }
522518const GPU_EighAlgorithm = Union{
523519 GPU_QRIteration, GPU_Jacobi, GPU_DivideAndConquer, GPU_Bisection,
524520}
525- const GPU_SVDAlgorithm = Union{CUSOLVER_SVDAlgorithm, ROCSOLVER_SVDAlgorithm}
521+ const EighAlgorithms = Union{
522+ RobustRepresentations,
523+ DivideAndConquer,
524+ QRIteration,
525+ Bisection,
526+ Jacobi,
527+ }
526528
527- const GPU_SVDPolar = Union{CUSOLVER_SVDPolar}
528- const GPU_Randomized = Union{CUSOLVER_Randomized}
529+ const SchurAlgorithms = Union{QRIteration}
530+
531+ const LAPACK_EigAlgorithm = Union{LAPACK_Simple, LAPACK_Expert}
532+ const CUSOLVER_EigAlgorithm = Union{CUSOLVER_Simple}
533+ const GPU_EigAlgorithm = Union{GPU_Simple}
534+ const EigAlgorithms = Union{QRIteration, RobustRepresentations}
529535
530536const QRAlgorithms = Union{Householder, LAPACK_HouseholderQR, Native_HouseholderQR, CUSOLVER_HouseholderQR, ROCSOLVER_HouseholderQR}
531537const LQAlgorithms = Union{Householder, LAPACK_HouseholderLQ, Native_HouseholderLQ, LQViaTransposedQR}
532- const SVDAlgorithms = Union{SafeDivideAndConquer, DivideAndConquer, QRIteration, Bisection, Jacobi, SVDViaPolar}
533538const PolarAlgorithms = Union{PolarViaSVD, PolarNewton}
534539
535540# ================================
0 commit comments