Skip to content

Commit 6d7f65f

Browse files
committed
add det(Symmetric)=det(full(Symmetric))
closes #13088
1 parent e71cfa0 commit 6d7f65f

File tree

2 files changed

+9
-1
lines changed

2 files changed

+9
-1
lines changed

base/linalg/symmetric.jl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@ function transpose(A::Hermitian)
5555
end
5656
ctranspose(A::Hermitian) = A
5757
trace(A::Hermitian) = real(trace(A.data))
58+
det(A::HermOrSym) = det(full(A))
5859

5960
#tril/triu
6061
function tril(A::Hermitian, k::Integer=0)

test/linalg/symmetric.jl

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,19 +10,26 @@ for σ in map(Hermitian, Any[ eye(2), [0 1; 1 0], [0 -im; im 0], [1 0; 0 -1] ])
1010
@test ishermitian(σ)
1111
end
1212

13-
# Hermitian matrix exponential/log
13+
# Hermitian matrix exponential/log/det
1414
let A1 = randn(4,4) + im*randn(4,4)
1515
A2 = A1 + A1'
1616
@test expm(A2) expm(Hermitian(A2))
1717
@test logm(A2) logm(Hermitian(A2))
1818
A3 = A1 * A1' # posdef
1919
@test expm(A3) expm(Hermitian(A3))
2020
@test logm(A3) logm(Hermitian(A3))
21+
@test det(A2) det(Hermitian(A2))
22+
@test det(A3) det(Hermitian(A3))
23+
@test det(A4) det(Hermitian(A4))
2124
end
2225

26+
# Symmetric matrix exponential/log/det
2327
let A1 = randn(4,4)
2428
A3 = A1 * A1'
2529
A4 = A1 + A1.'
30+
@test det(A3) det(Hermitian(A3))
31+
@test det(A3) det(Symmetric(A3))
32+
@test det(A4) det(Hermitian(A4))
2633
@test expm(A4) expm(Symmetric(A4))
2734
@test logm(A3) logm(Symmetric(A3))
2835
@test logm(A3) logm(Hermitian(A3))

0 commit comments

Comments
 (0)