Skip to content

Commit

Permalink
SparseArrays: Fix order of triangular and adjortrans wrappers
Browse files Browse the repository at this point in the history
  • Loading branch information
dkarrasch authored and KristofferC committed Oct 10, 2023
1 parent 3fb302e commit 248bef5
Showing 1 changed file with 23 additions and 23 deletions.
46 changes: 23 additions & 23 deletions stdlib/SparseArrays/src/linalg.jl
Original file line number Diff line number Diff line change
Expand Up @@ -424,20 +424,20 @@ const LowerTriangularPlain{T} = Union{
UnitLowerTriangular{T,<:SparseMatrixCSCUnion{T}}}

const LowerTriangularWrapped{T} = Union{
Adjoint{T,<:UpperTriangular{T,<:SparseMatrixCSCUnion{T}}},
Adjoint{T,<:UnitUpperTriangular{T,<:SparseMatrixCSCUnion{T}}},
Transpose{T,<:UpperTriangular{T,<:SparseMatrixCSCUnion{T}}},
Transpose{T,<:UnitUpperTriangular{T,<:SparseMatrixCSCUnion{T}}}} where T
LowerTriangular{T,<:Adjoint{T,<:SparseMatrixCSCUnion{T}}},
UnitLowerTriangular{T,<:Adjoint{T,<:SparseMatrixCSCUnion{T}}},
LowerTriangular{T,<:Transpose{T,<:SparseMatrixCSCUnion{T}}},
UnitLowerTriangular{T,<:Transpose{T,<:SparseMatrixCSCUnion{T}}}} where T

const UpperTriangularPlain{T} = Union{
UpperTriangular{T,<:SparseMatrixCSCUnion{T}},
UnitUpperTriangular{T,<:SparseMatrixCSCUnion{T}}}

const UpperTriangularWrapped{T} = Union{
Adjoint{T,<:LowerTriangular{T,<:SparseMatrixCSCUnion{T}}},
Adjoint{T,<:UnitLowerTriangular{T,<:SparseMatrixCSCUnion{T}}},
Transpose{T,<:LowerTriangular{T,<:SparseMatrixCSCUnion{T}}},
Transpose{T,<:UnitLowerTriangular{T,<:SparseMatrixCSCUnion{T}}}} where T
UpperTriangular{T,<:Adjoint{T,<:SparseMatrixCSCUnion{T}}},
UnitUpperTriangular{T,<:Adjoint{T,<:SparseMatrixCSCUnion{T}}},
UpperTriangular{T,<:Transpose{T,<:SparseMatrixCSCUnion{T}}},
UnitUpperTriangular{T,<:Transpose{T,<:SparseMatrixCSCUnion{T}}}} where T

const UpperTriangularSparse{T} = Union{
UpperTriangularWrapped{T}, UpperTriangularPlain{T}} where T
Expand Down Expand Up @@ -543,9 +543,9 @@ end

# forward multiplication for adjoint and transpose of LowerTriangular CSC matrices
function _lmul!(U::UpperTriangularWrapped, B::StridedVecOrMat)
A = U.parent.data
unit = U.parent isa UnitDiagonalTriangular
adj = U isa Adjoint
A = parent(parent(U))
unit = U isa UnitDiagonalTriangular
adj = parent(U) isa Adjoint

nrowB, ncolB = size(B, 1), size(B, 2)
aa = getnzval(A)
Expand Down Expand Up @@ -583,9 +583,9 @@ end

# backward multiplication with adjoint and transpose of LowerTriangular CSC matrices
function _lmul!(L::LowerTriangularWrapped, B::StridedVecOrMat)
A = L.parent.data
unit = L.parent isa UnitDiagonalTriangular
adj = L isa Adjoint
A = parent(parent(L))
unit = L isa UnitDiagonalTriangular
adj = parent(L) isa Adjoint

nrowB, ncolB = size(B, 1), size(B, 2)
aa = getnzval(A)
Expand Down Expand Up @@ -718,9 +718,9 @@ end

# forward substitution for adjoint and transpose of UpperTriangular CSC matrices
function _ldiv!(L::LowerTriangularWrapped, B::StridedVecOrMat)
A = L.parent.data
unit = L.parent isa UnitDiagonalTriangular
adj = L isa Adjoint
A = parent(parent(L))
unit = L isa UnitDiagonalTriangular
adj = parent(L) isa Adjoint

nrowB, ncolB = size(B, 1), size(B, 2)
aa = getnzval(A)
Expand Down Expand Up @@ -764,9 +764,9 @@ end

# backward substitution for adjoint and transpose of LowerTriangular CSC matrices
function _ldiv!(U::UpperTriangularWrapped, B::StridedVecOrMat)
A = U.parent.data
unit = U.parent isa UnitDiagonalTriangular
adj = U isa Adjoint
A = parent(parent(U))
unit = U isa UnitDiagonalTriangular
adj = parent(U) isa Adjoint

nrowB, ncolB = size(B, 1), size(B, 2)
aa = getnzval(A)
Expand Down Expand Up @@ -1578,12 +1578,12 @@ for (xformtype, xformop) in ((:Adjoint, :adjoint), (:Transpose, :transpose))
if m == n
if istril(A)
if istriu(A)
return \($xformop(Diagonal(Vector(diag(A)))), B)
return \(Diagonal(($xformop.(diag(A)))), B)
else
return \($xformop(LowerTriangular(A)), B)
return \(UpperTriangular($xformop(A)), B)
end
elseif istriu(A)
return \($xformop(UpperTriangular(A)), B)
return \(LowerTriangular($xformop(A)), B)
end
if ishermitian(A)
return \($xformop(Hermitian(A)), B)
Expand Down

0 comments on commit 248bef5

Please sign in to comment.