@@ -611,11 +611,17 @@ function left_orth!(t::AbstractTensorMap;
611611 trunc == notrunc () || kind === :svd ||
612612 throw (ArgumentError (" truncation not supported for left_orth with kind = $kind " ))
613613
614- kind === :qr && return qr_compact! (t; alg_qr... )
615- kind === :polar && return left_orth_polar! (t; alg_polar... )
616- kind === :svd && return left_orth_svd! (t; trunc, alg_svd... )
617-
618- throw (ArgumentError (lazy " `left_orth!` received unknown value `kind = $kind`" ))
614+ return if kind === :qr
615+ alg_qr isa NamedTuple ? qr_compact! (t; alg_qr... ) : qr_compact! (t; alg= alg_qr)
616+ elseif kind === :polar
617+ alg_polar isa NamedTuple ? left_orth_polar! (t; alg_polar... ) :
618+ left_orth_polar! (t; alg= alg_polar)
619+ elseif kind === :svd
620+ alg_svd isa NamedTuple ? left_orth_svd! (t; trunc, alg_svd... ) :
621+ left_orth_svd! (t; trunc, alg= alg_svd)
622+ else
623+ throw (ArgumentError (lazy " `left_orth!` received unknown value `kind = $kind`" ))
624+ end
619625end
620626function right_orth! (t:: AbstractTensorMap ;
621627 trunc:: TruncationStrategy = notrunc (),
@@ -624,11 +630,17 @@ function right_orth!(t::AbstractTensorMap;
624630 trunc == notrunc () || kind === :svd ||
625631 throw (ArgumentError (" truncation not supported for right_orth with kind = $kind " ))
626632
627- kind === :lq && return lq_compact! (t; alg_lq... )
628- kind === :polar && return right_orth_polar! (t; alg_polar... )
629- kind === :svd && return right_orth_svd! (t; trunc, alg_svd... )
630-
631- throw (ArgumentError (lazy " `right_orth!` received unknown value `kind = $kind`" ))
633+ return if kind === :lq
634+ alg_lq isa NamedTuple ? lq_compact! (t; alg_lq... ) : lq_compact! (t; alg= alg_lq)
635+ elseif kind === :polar
636+ alg_polar isa NamedTuple ? right_orth_polar! (t; alg_polar... ) :
637+ right_orth_polar! (t; alg= alg_polar)
638+ elseif kind === :svd
639+ alg_svd isa NamedTuple ? right_orth_svd! (t; trunc, alg_svd... ) :
640+ right_orth_svd! (t; trunc, alg= alg_svd)
641+ else
642+ throw (ArgumentError (lazy " `right_orth!` received unknown value `kind = $kind`" ))
643+ end
632644end
633645
634646function left_orth_polar! (t:: AbstractTensorMap ; alg= nothing , kwargs... )
0 commit comments