9191# IMPLEMENTATIONS
9292# ==========================
9393
94- geev! (driver:: Driver , args... ; kwargs... ) = throw (ArgumentError (" $driver does not provide $f! " ))
94+ geev! (driver:: Driver , args... ; kwargs... ) = throw (ArgumentError (" $driver does not provide `geev!` " ))
9595function geevx! (driver:: Driver , A, Dd, V; kwargs... )
9696 @warn " $driver does not provide `geevx!`, falling back to `geev!`" maxlog = 1
97- return geev! (driver, A, Dd, V; kwargs ... )
97+ return geev! (driver, A, Dd, V)
9898end
99- _has_geevx! (:: Driver ) = false
10099
101100# LAPACK implementations
102101for f! in (:geev! , :geevx! )
103102 @eval $ f! (:: LAPACK , args... ; kwargs... ) = YALAPACK.$ f! (args... ; kwargs... )
104103end
105- _has_geevx! (:: LAPACK ) = true
106104
107105# driver dispatch
108106@inline qr_iteration_eig_full! (A, Dd, V; driver:: Driver = DefaultDriver (), kwargs... ) =
@@ -118,17 +116,17 @@ _has_geevx!(::LAPACK) = true
118116# Implementation
119117function qr_iteration_eig_full! (
120118 driver:: Driver , A, Dd, V;
121- fixgauge:: Bool = default_fixgauge (), balanced :: Bool = _has_geevx! (driver), kwargs ...
119+ fixgauge:: Bool = default_fixgauge (), scale :: Bool = true , permute :: Bool = true
122120 )
123- (balanced ? geevx! : geev!) (driver, A, Dd, V; kwargs ... )
121+ (scale & permute) ? geev! (driver, A, Dd, V) : geevx! (driver, A, Dd, V; scale, permute )
124122 fixgauge && gaugefix! (eig_full!, V)
125123 return Dd, V
126124end
127125function qr_iteration_eig_vals! (
128126 driver:: Driver , A, D, V;
129- fixgauge:: Bool = default_fixgauge (), balanced :: Bool = _has_geevx! (driver), kwargs ...
127+ fixgauge:: Bool = default_fixgauge (), scale :: Bool = true , permute :: Bool = true
130128 )
131- (balanced ? geevx! : geev!) (driver, A, D, V; kwargs ... )
129+ (scale & permute) ? geev! (driver, A, D, V) : geevx! (driver, A, D, V; scale, permute )
132130 return D
133131end
134132
@@ -188,15 +186,15 @@ end
188186
189187# Deprecations
190188# ------------
191- for ( lapack_algtype, balanced_val) in (( :LAPACK_Simple , false ), ( :LAPACK_Expert , true ) )
189+ for lapack_algtype in (:LAPACK_Simple , :LAPACK_Expert )
192190 @eval begin
193191 Base. @deprecate (
194192 eig_full! (A, DV, alg:: $lapack_algtype ),
195- eig_full! (A, DV, QRIteration (; balanced = $ balanced_val, alg. kwargs... ))
193+ eig_full! (A, DV, QRIteration (; alg. kwargs... ))
196194 )
197195 Base. @deprecate (
198196 eig_vals! (A, D, alg:: $lapack_algtype ),
199- eig_vals! (A, D, QRIteration (; balanced = $ balanced_val, alg. kwargs... ))
197+ eig_vals! (A, D, QRIteration (; alg. kwargs... ))
200198 )
201199 end
202200end
0 commit comments