@@ -424,20 +424,20 @@ const LowerTriangularPlain{T} = Union{
424
424
UnitLowerTriangular{T,<: SparseMatrixCSCUnion{T} }}
425
425
426
426
const LowerTriangularWrapped{T} = Union{
427
- Adjoint {T,<: UpperTriangular {T,<:SparseMatrixCSCUnion{T}} },
428
- Adjoint {T,<: UnitUpperTriangular {T,<:SparseMatrixCSCUnion{T}} },
429
- Transpose {T,<: UpperTriangular {T,<:SparseMatrixCSCUnion{T}} },
430
- Transpose {T,<: UnitUpperTriangular {T,<:SparseMatrixCSCUnion{T}} }} where T
427
+ LowerTriangular {T,<: Adjoint {T,<:SparseMatrixCSCUnion{T}} },
428
+ UnitLowerTriangular {T,<: Adjoint {T,<:SparseMatrixCSCUnion{T}} },
429
+ LowerTriangular {T,<: Transpose {T,<:SparseMatrixCSCUnion{T}} },
430
+ UnitLowerTriangular {T,<: Transpose {T,<:SparseMatrixCSCUnion{T}} }} where T
431
431
432
432
const UpperTriangularPlain{T} = Union{
433
433
UpperTriangular{T,<: SparseMatrixCSCUnion{T} },
434
434
UnitUpperTriangular{T,<: SparseMatrixCSCUnion{T} }}
435
435
436
436
const UpperTriangularWrapped{T} = Union{
437
- Adjoint {T,<: LowerTriangular {T,<:SparseMatrixCSCUnion{T}} },
438
- Adjoint {T,<: UnitLowerTriangular {T,<:SparseMatrixCSCUnion{T}} },
439
- Transpose {T,<: LowerTriangular {T,<:SparseMatrixCSCUnion{T}} },
440
- Transpose {T,<: UnitLowerTriangular {T,<:SparseMatrixCSCUnion{T}} }} where T
437
+ UpperTriangular {T,<: Adjoint {T,<:SparseMatrixCSCUnion{T}} },
438
+ UnitUpperTriangular {T,<: Adjoint {T,<:SparseMatrixCSCUnion{T}} },
439
+ UpperTriangular {T,<: Transpose {T,<:SparseMatrixCSCUnion{T}} },
440
+ UnitUpperTriangular {T,<: Transpose {T,<:SparseMatrixCSCUnion{T}} }} where T
441
441
442
442
const UpperTriangularSparse{T} = Union{
443
443
UpperTriangularWrapped{T}, UpperTriangularPlain{T}} where T
543
543
544
544
# forward multiplication for adjoint and transpose of LowerTriangular CSC matrices
545
545
function _lmul! (U:: UpperTriangularWrapped , B:: StridedVecOrMat )
546
- A = U . parent. data
547
- unit = U. parent isa UnitDiagonalTriangular
548
- adj = U isa Adjoint
546
+ A = parent ( parent (U))
547
+ unit = U isa UnitDiagonalTriangular
548
+ adj = parent (U) isa Adjoint
549
549
550
550
nrowB, ncolB = size (B, 1 ), size (B, 2 )
551
551
aa = getnzval (A)
583
583
584
584
# backward multiplication with adjoint and transpose of LowerTriangular CSC matrices
585
585
function _lmul! (L:: LowerTriangularWrapped , B:: StridedVecOrMat )
586
- A = L . parent. data
587
- unit = L. parent isa UnitDiagonalTriangular
588
- adj = L isa Adjoint
586
+ A = parent ( parent (L))
587
+ unit = L isa UnitDiagonalTriangular
588
+ adj = parent (L) isa Adjoint
589
589
590
590
nrowB, ncolB = size (B, 1 ), size (B, 2 )
591
591
aa = getnzval (A)
718
718
719
719
# forward substitution for adjoint and transpose of UpperTriangular CSC matrices
720
720
function _ldiv! (L:: LowerTriangularWrapped , B:: StridedVecOrMat )
721
- A = L . parent. data
722
- unit = L. parent isa UnitDiagonalTriangular
723
- adj = L isa Adjoint
721
+ A = parent ( parent (L))
722
+ unit = L isa UnitDiagonalTriangular
723
+ adj = parent (L) isa Adjoint
724
724
725
725
nrowB, ncolB = size (B, 1 ), size (B, 2 )
726
726
aa = getnzval (A)
764
764
765
765
# backward substitution for adjoint and transpose of LowerTriangular CSC matrices
766
766
function _ldiv! (U:: UpperTriangularWrapped , B:: StridedVecOrMat )
767
- A = U . parent. data
768
- unit = U. parent isa UnitDiagonalTriangular
769
- adj = U isa Adjoint
767
+ A = parent ( parent (U))
768
+ unit = U isa UnitDiagonalTriangular
769
+ adj = parent (U) isa Adjoint
770
770
771
771
nrowB, ncolB = size (B, 1 ), size (B, 2 )
772
772
aa = getnzval (A)
@@ -1578,12 +1578,12 @@ for (xformtype, xformop) in ((:Adjoint, :adjoint), (:Transpose, :transpose))
1578
1578
if m == n
1579
1579
if istril (A)
1580
1580
if istriu (A)
1581
- return \ ($ xformop ( Diagonal (Vector (diag (A)))), B)
1581
+ return \ (Diagonal (( $ xformop . (diag (A)))), B)
1582
1582
else
1583
- return \ ($ xformop ( LowerTriangular (A)), B)
1583
+ return \ (UpperTriangular ( $ xformop (A)), B)
1584
1584
end
1585
1585
elseif istriu (A)
1586
- return \ ($ xformop ( UpperTriangular (A)), B)
1586
+ return \ (LowerTriangular ( $ xformop (A)), B)
1587
1587
end
1588
1588
if ishermitian (A)
1589
1589
return \ ($ xformop (Hermitian (A)), B)
0 commit comments