Skip to content

Commit 6a4793a

Browse files
authored
Fix negation of SymTridiagonal (fixes #36680) (#36681)
1 parent f968084 commit 6a4793a

File tree

2 files changed

+6
-0
lines changed

2 files changed

+6
-0
lines changed

stdlib/LinearAlgebra/src/tridiag.jl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -204,6 +204,7 @@ end
204204

205205
+(A::SymTridiagonal, B::SymTridiagonal) = SymTridiagonal(A.dv+B.dv, A.ev+B.ev)
206206
-(A::SymTridiagonal, B::SymTridiagonal) = SymTridiagonal(A.dv-B.dv, A.ev-B.ev)
207+
-(A::SymTridiagonal) = SymTridiagonal(-A.dv, -A.ev)
207208
*(A::SymTridiagonal, B::Number) = SymTridiagonal(A.dv*B, A.ev*B)
208209
*(B::Number, A::SymTridiagonal) = A*B
209210
/(A::SymTridiagonal, B::Number) = SymTridiagonal(A.dv/B, A.ev/B)

stdlib/LinearAlgebra/test/tridiag.jl

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -294,6 +294,11 @@ end
294294
@test_throws DimensionMismatch LinearAlgebra.mul!(Cnm,B,Cnn)
295295
end
296296
end
297+
@testset "Negation" begin
298+
mA = -A
299+
@test mA isa mat_type
300+
@test -mA == A
301+
end
297302
if mat_type == SymTridiagonal
298303
@testset "Tridiagonal/SymTridiagonal mixing ops" begin
299304
B = convert(Tridiagonal{elty}, A)

0 commit comments

Comments
 (0)