@@ -426,7 +426,78 @@ default_algorithm(::typeof(right_null!), ::Type{A}; trunc = nothing, kwargs...)
426426 isnothing(trunc) ? select_algorithm(right_null!, A, Val(:lq); kwargs... ) :
427427 select_algorithm(right_null!, A, Val(:svd); trunc, kwargs... )
428428
429+ """
430+ left_orth_alg(alg::AbstractAlgorithm) -> LeftOrthAlgorithm
431+
432+ Convert an algorithm to a [`LeftOrthAlgorithm`](@ref) wrapper for use with [`left_orth`](@ref).
433+
434+ This function attempts to deduce the appropriate factorization kind (`:qr`, `:polar`, or `:svd`)
435+ from the algorithm type and wraps it in a `LeftOrthAlgorithm`. Custom algorithm types can be
436+ registered by defining:
437+
438+ ```julia
439+ MatrixAlgebraKit.LeftOrthAlgorithm(alg::CustomAlgorithm) = LeftOrthAlgorithm{kind}(alg)
440+ ```
441+
442+ where `kind` specifies the factorization backend to use.
443+
444+ See also [`LeftOrthAlgorithm`](@ref), [`left_orth`](@ref).
445+ """
429446left_orth_alg(alg:: AbstractAlgorithm ) = LeftOrthAlgorithm(alg)
447+
448+ """
449+ right_orth_alg(alg::AbstractAlgorithm) -> RightOrthAlgorithm
450+
451+ Convert an algorithm to a [`RightOrthAlgorithm`](@ref) wrapper for use with [`right_orth`](@ref).
452+
453+ This function attempts to deduce the appropriate factorization kind (`:lq`, `:polar`, or `:svd`)
454+ from the algorithm type and wraps it in a `RightOrthAlgorithm`. Custom algorithm types can be
455+ registered by defining:
456+
457+ ```julia
458+ MatrixAlgebraKit.RightOrthAlgorithm(alg::CustomAlgorithm) = RightOrthAlgorithm{kind}(alg)
459+ ```
460+
461+ where `kind` specifies the factorization backend to use.
462+
463+ See also [`RightOrthAlgorithm`](@ref), [`right_orth`](@ref).
464+ """
430465right_orth_alg(alg:: AbstractAlgorithm ) = RightOrthAlgorithm(alg)
466+
467+ """
468+ left_null_alg(alg::AbstractAlgorithm) -> LeftNullAlgorithm
469+
470+ Convert an algorithm to a [`LeftNullAlgorithm`](@ref) wrapper for use with [`left_null`](@ref).
471+
472+ This function attempts to deduce the appropriate factorization kind (`:qr` or `:svd`) from
473+ the algorithm type and wraps it in a `LeftNullAlgorithm`. Custom algorithm types can be
474+ registered by defining:
475+
476+ ```julia
477+ MatrixAlgebraKit.LeftNullAlgorithm(alg::CustomAlgorithm) = LeftNullAlgorithm{kind}(alg)
478+ ```
479+
480+ where `kind` specifies the factorization backend to use.
481+
482+ See also [`LeftNullAlgorithm`](@ref), [`left_null`](@ref).
483+ """
431484left_null_alg(alg:: AbstractAlgorithm ) = LeftNullAlgorithm(alg)
485+
486+ """
487+ right_null_alg(alg::AbstractAlgorithm) -> RightNullAlgorithm
488+
489+ Convert an algorithm to a [`RightNullAlgorithm`](@ref) wrapper for use with [`right_null`](@ref).
490+
491+ This function attempts to deduce the appropriate factorization kind (`:lq` or `:svd`) from
492+ the algorithm type and wraps it in a `RightNullAlgorithm`. Custom algorithm types can be
493+ registered by defining:
494+
495+ ```julia
496+ MatrixAlgebraKit.RightNullAlgorithm(alg::CustomAlgorithm) = RightNullAlgorithm{kind}(alg)
497+ ```
498+
499+ where `kind` specifies the factorization backend to use.
500+
501+ See also [`RightNullAlgorithm`](@ref), [`right_null`](@ref).
502+ """
432503right_null_alg(alg:: AbstractAlgorithm ) = RightNullAlgorithm(alg)
0 commit comments