Skip to content

Commit e1f0571

Browse files
committed
Generic fallback for fillstored!
1 parent c5d7122 commit e1f0571

File tree

3 files changed

+18
-0
lines changed

3 files changed

+18
-0
lines changed

src/adjtrans.jl

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -576,3 +576,8 @@ diagview(A::Adjoint, k::Integer = 0) = _vecadjoint(diagview(parent(A), -k))
576576
# triu and tril
577577
triu!(A::AdjOrTransAbsMat, k::Integer = 0) = wrapperop(A)(tril!(parent(A), -k))
578578
tril!(A::AdjOrTransAbsMat, k::Integer = 0) = wrapperop(A)(triu!(parent(A), -k))
579+
580+
function fillstored!(A::AdjOrTransAbsMat, v)
581+
fillstored!(parent(A), wrapperop(A)(v))
582+
return A
583+
end

src/dense.jl

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -218,6 +218,8 @@ function fillband!(A::AbstractMatrix{T}, x, l, u) where T
218218
return A
219219
end
220220

221+
fillstored!(A::AbstractMatrix, v) = fill!(A, v)
222+
221223
diagind(m::Integer, n::Integer, k::Integer=0) = diagind(IndexLinear(), m, n, k)
222224
diagind(::IndexLinear, m::Integer, n::Integer, k::Integer=0) =
223225
k <= 0 ? range(1-k, step=m+1, length=min(m+k, n)) : range(k*m+1, step=m+1, length=min(m, n-k))

test/adjtrans.jl

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -809,4 +809,15 @@ end
809809
end
810810
end
811811

812+
@testset "fillstored!" begin
813+
A = rand(ComplexF64, 4, 4)
814+
U = UpperTriangular(A)
815+
@testset for op in (adjoint, transpose)
816+
@test LinearAlgebra.fillstored!(op(A), 1) == op(fill(1, size(A)))
817+
@test LinearAlgebra.fillstored!(op(A), 2im) == op(fill(op(2im), size(A)))
818+
@test LinearAlgebra.fillstored!(op(U), 1) == op(triu(fill(1, size(U))))
819+
@test LinearAlgebra.fillstored!(op(U), 2im) == op(triu(fill(op(2im), size(U))))
820+
end
821+
end
822+
812823
end # module TestAdjointTranspose

0 commit comments

Comments
 (0)