Skip to content

Commit ade9957

Browse files
authored
Require ColumnMajor to call trtrs! (#104)
* Require ColumnMajor to call trtrs! * Update factorizations.jl * add tests
1 parent 7887c3e commit ade9957

File tree

4 files changed

+9
-5
lines changed

4 files changed

+9
-5
lines changed

Project.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
name = "ArrayLayouts"
22
uuid = "4c555306-a7a7-4459-81d9-ec55ddd5c99a"
33
authors = ["Sheehan Olver <[email protected]>"]
4-
version = "0.8.10"
4+
version = "0.8.11"
55

66
[deps]
77
FillArrays = "1a297f60-69ca-5386-bcde-b61e274b549b"

src/factorizations.jl

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -126,6 +126,8 @@ copy(M::Lmul{<:AbstractQLayout}) = copyto!(similar(M), M)
126126
mulreduce(M::Mul{<:AbstractQLayout,<:AbstractQLayout}) = MulAdd(M)
127127
mulreduce(M::Mul{<:AbstractQLayout}) = Lmul(M)
128128
mulreduce(M::Mul{<:Any,<:AbstractQLayout}) = Rmul(M)
129+
mulreduce(M::Mul{<:TriangularLayout,<:AbstractQLayout}) = Rmul(M)
130+
mulreduce(M::Mul{<:AbstractQLayout,<:TriangularLayout}) = Lmul(M)
129131

130132
function copyto!(dest::AbstractArray{T}, M::Lmul{<:AbstractQLayout}) where T
131133
A,B = M.A,M.B

src/triangular.jl

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -225,29 +225,29 @@ for UNIT in ('U', 'N')
225225
<:AbstractStridedLayout}) =
226226
BLAS.trsv!('L', 'T', $UNIT, transpose(triangulardata(M.A)), M.B)
227227
@inline materialize!(M::BlasMatLdivMat{<:TriangularLayout{'U',$UNIT,<:AbstractRowMajor},
228-
<:AbstractStridedLayout}) =
228+
<:AbstractColumnMajor}) =
229229
LAPACK.trtrs!('L', 'T', $UNIT, transpose(triangulardata(M.A)), M.B)
230230

231231
@inline materialize!(M::BlasMatLdivVec{<:TriangularLayout{'L',$UNIT,<:AbstractRowMajor},
232232
<:AbstractStridedLayout}) =
233233
BLAS.trsv!('U', 'T', $UNIT, transpose(triangulardata(M.A)), M.B)
234234
@inline materialize!(M::BlasMatLdivMat{<:TriangularLayout{'L',$UNIT,<:AbstractRowMajor},
235-
<:AbstractStridedLayout}) =
235+
<:AbstractColumnMajor}) =
236236
LAPACK.trtrs!('U', 'T', $UNIT, transpose(triangulardata(M.A)), M.B)
237237

238238

239239
@inline materialize!(M::BlasMatLdivVec{<:TriangularLayout{'U',$UNIT,<:ConjLayout{<:AbstractRowMajor}},
240240
<:AbstractStridedLayout}) =
241241
BLAS.trsv!('L', 'C', $UNIT, triangulardata(M.A)', M.B)
242242
@inline materialize!(M::BlasMatLdivMat{<:TriangularLayout{'U',$UNIT,<:ConjLayout{<:AbstractRowMajor}},
243-
<:AbstractStridedLayout}) =
243+
<:AbstractColumnMajor}) =
244244
LAPACK.trtrs!('L', 'C', $UNIT, triangulardata(M.A)', M.B)
245245

246246
@inline materialize!(M::BlasMatLdivVec{<:TriangularLayout{'L',$UNIT,<:ConjLayout{<:AbstractRowMajor}},
247247
<:AbstractStridedLayout}) =
248248
BLAS.trsv!('U', 'C', $UNIT, triangulardata(M.A)', M.B)
249249
@inline materialize!(M::BlasMatLdivMat{<:TriangularLayout{'L',$UNIT,<:ConjLayout{<:AbstractRowMajor}},
250-
<:AbstractStridedLayout}) =
250+
<:AbstractColumnMajor}) =
251251
LAPACK.trtrs!('U', 'C', $UNIT, triangulardata(M.A)', M.B)
252252
end
253253
end

test/test_muladd.jl

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -625,6 +625,8 @@ Random.seed!(0)
625625
@test Q*Q' mul(Q,Q')
626626
@test Q'*Q' mul(Q',Q')
627627
@test Q'*Q mul(Q',Q)
628+
@test Q*UpperTriangular(B) mul(Q, UpperTriangular(B))
629+
@test UpperTriangular(B)*Q mul(UpperTriangular(B), Q)
628630
end
629631

630632
@testset "Mul" begin

0 commit comments

Comments
 (0)