Skip to content

Commit 907a202

Browse files
authored
Avoid materializing diag in Diagonal kron (#1230)
1 parent bd5f71f commit 907a202

File tree

1 file changed

+5
-5
lines changed

1 file changed

+5
-5
lines changed

src/diagonal.jl

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -797,16 +797,16 @@ end
797797
kron(A::Diagonal, B::Diagonal) = Diagonal(kron(A.diag, B.diag))
798798

799799
function kron(A::Diagonal, B::SymTridiagonal)
800-
kdv = kron(diag(A), B.dv)
800+
kdv = kron(A.diag, B.dv)
801801
# We don't need to drop the last element
802-
kev = kron(diag(A), _pushzero(_evview(B)))
802+
kev = kron(A.diag, _pushzero(_evview(B)))
803803
SymTridiagonal(kdv, kev)
804804
end
805805
function kron(A::Diagonal, B::Tridiagonal)
806806
# `_droplast!` is only guaranteed to work with `Vector`
807-
kd = convert(Vector, kron(diag(A), B.d))
808-
kdl = _droplast!(convert(Vector, kron(diag(A), _pushzero(B.dl))))
809-
kdu = _droplast!(convert(Vector, kron(diag(A), _pushzero(B.du))))
807+
kd = convert(Vector, kron(A.diag, B.d))
808+
kdl = _droplast!(convert(Vector, kron(A.diag, _pushzero(B.dl))))
809+
kdu = _droplast!(convert(Vector, kron(A.diag, _pushzero(B.du))))
810810
Tridiagonal(kdl, kd, kdu)
811811
end
812812

0 commit comments

Comments
 (0)