Skip to content

Commit

Permalink
Merge pull request JuliaLang#14231 from cpk26/sparse-matrix
Browse files Browse the repository at this point in the history
Add unary - for Symmetric
  • Loading branch information
jakebolewski committed Dec 7, 2015
2 parents 60f46ca + 28a2dfa commit a949baf
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 0 deletions.
2 changes: 2 additions & 0 deletions base/linalg/symmetric.jl
Original file line number Diff line number Diff line change
Expand Up @@ -105,6 +105,8 @@ function triu(A::Symmetric, k::Integer=0)
end
end

-{Tv,S<:AbstractMatrix}(A::Symmetric{Tv,S}) = Symmetric{Tv,S}(-A.data, A.uplo)

## Matvec
A_mul_B!{T<:BlasFloat,S<:StridedMatrix}(y::StridedVector{T}, A::Symmetric{T,S}, x::StridedVector{T}) = BLAS.symv!(A.uplo, one(T), A.data, x, zero(T), y)
A_mul_B!{T<:BlasComplex,S<:StridedMatrix}(y::StridedVector{T}, A::Hermitian{T,S}, x::StridedVector{T}) = BLAS.hemv!(A.uplo, one(T), A.data, x, zero(T), y)
Expand Down
6 changes: 6 additions & 0 deletions test/linalg/symmetric.jl
Original file line number Diff line number Diff line change
Expand Up @@ -209,3 +209,9 @@ let A = [1.0+im 2.0; 2.0 0.0]
@test !ishermitian(A)
@test_throws ArgumentError Hermitian(A)
end

# Unary minus for Symmetric matrices
let A = Symmetric(randn(5,5))
B = -A
@test A + B ≈ zeros(5,5)
end

0 comments on commit a949baf

Please sign in to comment.