Skip to content

Commit 1a2285b

Browse files
relaxed eltype for ldiv! and rdiv! methods (#41015)
Co-authored-by: Daniel Karrasch <[email protected]>
1 parent 70d8b25 commit 1a2285b

File tree

2 files changed

+11
-4
lines changed

2 files changed

+11
-4
lines changed

stdlib/LinearAlgebra/src/diagonal.jl

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -452,9 +452,9 @@ mul!(C::AbstractMatrix, A::Transpose{<:Any,<:Diagonal}, B::Transpose{<:Any,<:Rea
452452

453453
ldiv!(x::AbstractArray, A::Diagonal, b::AbstractArray) = (x .= A.diag .\ b)
454454

455-
ldiv!(adjD::Adjoint{<:Any,<:Diagonal{T}}, B::AbstractVecOrMat{T}) where {T} =
455+
ldiv!(adjD::Adjoint{<:Any,<:Diagonal}, B::AbstractVecOrMat) =
456456
(D = adjD.parent; ldiv!(conj(D), B))
457-
ldiv!(transD::Transpose{<:Any,<:Diagonal{T}}, B::AbstractVecOrMat{T}) where {T} =
457+
ldiv!(transD::Transpose{<:Any,<:Diagonal}, B::AbstractVecOrMat) =
458458
(D = transD.parent; ldiv!(D, B))
459459

460460
function ldiv!(D::Diagonal, A::Union{LowerTriangular,UpperTriangular})
@@ -486,9 +486,9 @@ function rdiv!(A::Union{LowerTriangular,UpperTriangular}, D::Diagonal)
486486
A
487487
end
488488

489-
rdiv!(A::AbstractMatrix{T}, adjD::Adjoint{<:Any,<:Diagonal{T}}) where {T} =
489+
rdiv!(A::AbstractMatrix, adjD::Adjoint{<:Any,<:Diagonal}) =
490490
(D = adjD.parent; rdiv!(A, conj(D)))
491-
rdiv!(A::AbstractMatrix{T}, transD::Transpose{<:Any,<:Diagonal{T}}) where {T} =
491+
rdiv!(A::AbstractMatrix, transD::Transpose{<:Any,<:Diagonal}) =
492492
(D = transD.parent; rdiv!(A, D))
493493

494494
(/)(A::Union{StridedMatrix, AbstractTriangular}, D::Diagonal) =

stdlib/LinearAlgebra/test/diagonal.jl

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -801,4 +801,11 @@ end
801801
@test dot(A, B) conj(dot(B, A))
802802
end
803803

804+
@testset "eltype relaxation(#41015)" begin
805+
A = rand(3,3)
806+
for trans in (identity, Adjoint, Transpose)
807+
@test ldiv!(trans(I(3)), A) == A
808+
@test rdiv!(A, trans(I(3))) == A
809+
end
810+
end
804811
end # module TestDiagonal

0 commit comments

Comments
 (0)