@@ -900,9 +900,6 @@ for func in (:exp, :cos, :sin, :tan, :cosh, :sinh, :tanh, :atan, :asinh, :atanh,
900
900
function ($ func)(A:: Hermitian{<:Complex} )
901
901
F = eigen (A)
902
902
retmat = (F. vectors * Diagonal (($ func). (F. values))) * F. vectors'
903
- for i in diagind (retmat, IndexStyle (retmat))
904
- retmat[i] = real (retmat[i])
905
- end
906
903
return Hermitian (retmat)
907
904
end
908
905
end
@@ -932,9 +929,6 @@ for func in (:acos, :asin)
932
929
F = eigen (A)
933
930
if all (λ -> - 1 ≤ λ ≤ 1 , F. values)
934
931
retmat = (F. vectors * Diagonal (($ func). (F. values))) * F. vectors'
935
- for i in diagind (retmat, IndexStyle (retmat))
936
- retmat[i] = real (retmat[i])
937
- end
938
932
return Hermitian (retmat)
939
933
else
940
934
return (F. vectors * Diagonal (($ func). (complex .(F. values)))) * F. vectors'
@@ -955,9 +949,6 @@ function acosh(A::Hermitian{<:Complex})
955
949
F = eigen (A)
956
950
if all (λ -> λ ≥ 1 , F. values)
957
951
retmat = (F. vectors * Diagonal (acosh .(F. values))) * F. vectors'
958
- for i in diagind (retmat, IndexStyle (retmat))
959
- retmat[i] = real (retmat[i])
960
- end
961
952
return Hermitian (retmat)
962
953
else
963
954
return (F. vectors * Diagonal (acosh .(complex .(F. values)))) * F. vectors'
@@ -1011,9 +1002,6 @@ for func in (:log, :sqrt)
1011
1002
λ₀ = $ rtolval # treat λ ≥ λ₀ as "zero" eigenvalues up to roundoff
1012
1003
if all (λ -> λ ≥ λ₀, F. values)
1013
1004
retmat = (F. vectors * Diagonal (($ func). (max .(0 , F. values)))) * F. vectors'
1014
- for i in diagind (retmat, IndexStyle (retmat))
1015
- retmat[i] = real (retmat[i])
1016
- end
1017
1005
return Hermitian (retmat)
1018
1006
else
1019
1007
retmat = (F. vectors * Diagonal (($ func). (complex .(F. values)))) * F. vectors'
0 commit comments