Skip to content

Commit 9335758

Browse files
Add hermitianpart method for Number types
1 parent a2358df commit 9335758

File tree

2 files changed

+10
-0
lines changed

2 files changed

+10
-0
lines changed

src/symmetric.jl

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1003,6 +1003,7 @@ end
10031003

10041004
"""
10051005
hermitianpart(A::AbstractMatrix, uplo::Symbol=:U) -> Hermitian
1006+
hermitianpart(x::Number) -> Real
10061007
10071008
Return the Hermitian part of the square matrix `A`, defined as `(A + A') / 2`, as a
10081009
[`Hermitian`](@ref) matrix. For real matrices `A`, this is also known as the symmetric part
@@ -1016,6 +1017,7 @@ See also [`hermitianpart!`](@ref) for the corresponding in-place operation.
10161017
This function requires Julia 1.10 or later.
10171018
"""
10181019
hermitianpart(A::AbstractMatrix, uplo::Symbol=:U) = Hermitian(_hermitianpart(A), uplo)
1020+
hermitianpart(x::Number) = real(x)
10191021

10201022
"""
10211023
hermitianpart!(A::AbstractMatrix, uplo::Symbol=:U) -> Hermitian

test/symmetric.jl

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1035,6 +1035,14 @@ end
10351035
@test Aherm isa Hermitian
10361036
@test Aherm.uplo == LinearAlgebra.char_uplo(uplo)
10371037
end
1038+
@testset "hermitianpart for numbers" begin
1039+
@test hermitianpart(3 + 4im) == 3
1040+
@test hermitianpart(5) == 5
1041+
@test hermitianpart(2.5) == 2.5
1042+
@test hermitianpart(-1 + 0im) == -1
1043+
@test typeof(hermitianpart(3 + 4im)) == Int
1044+
@test typeof(hermitianpart(2.5 + 3im)) == Float64
1045+
end
10381046
end
10391047

10401048
@testset "Structured display" begin

0 commit comments

Comments
 (0)