Skip to content

Commit 098966a

Browse files
committed
formatting
1 parent 0fa6a16 commit 098966a

File tree

1 file changed

+24
-12
lines changed

1 file changed

+24
-12
lines changed

src/symmetric.jl

Lines changed: 24 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -850,9 +850,11 @@ function ^(A::SelfAdjoint, p::Real)
850850
isinteger(p) && return integerpow(A, p)
851851
F = eigen(A)
852852
if all-> λ 0, F.values)
853-
return wrappertype(A)((F.vectors * Diagonal((F.values).^p)) * F.vectors')
853+
retmat = (F.vectors * Diagonal((F.values).^p)) * F.vectors'
854+
return wrappertype(A)(retmat)
854855
else
855-
return nonhermitianwrappertype(A)((F.vectors * Diagonal(complex.(F.values).^p)) * F.vectors')
856+
retmat = (F.vectors * Diagonal(complex.(F.values).^p)) * F.vectors'
857+
return nonhermitianwrappertype(A)(retmat)
856858
end
857859
end
858860
function ^(A::SymSymTri{<:Complex}, p::Real)
@@ -864,24 +866,28 @@ for func in (:exp, :cos, :sin, :tan, :cosh, :sinh, :tanh, :atan, :asinh, :atanh,
864866
@eval begin
865867
function ($func)(A::SelfAdjoint)
866868
F = eigen(A)
867-
return wrappertype(A)((F.vectors * Diagonal(($func).(F.values))) * F.vectors')
869+
retmat = (F.vectors * Diagonal(($func).(F.values))) * F.vectors'
870+
return wrappertype(A)(retmat)
868871
end
869872
end
870873
end
871874

872875
function cis(A::SelfAdjoint)
873876
F = eigen(A)
874-
return nonhermitianwrappertype(A)(F.vectors .* cis.(F.values') * F.vectors')
877+
retmat = F.vectors .* cis.(F.values') * F.vectors'
878+
return nonhermitianwrappertype(A)(retmat)
875879
end
876880

877881
for func in (:acos, :asin)
878882
@eval begin
879883
function ($func)(A::SelfAdjoint)
880884
F = eigen(A)
881885
if all-> -1 λ 1, F.values)
882-
return wrappertype(A)((F.vectors * Diagonal(($func).(F.values))) * F.vectors')
886+
retmat = (F.vectors * Diagonal(($func).(F.values))) * F.vectors'
887+
return wrappertype(A)(retmat)
883888
else
884-
return nonhermitianwrappertype(A)((F.vectors * Diagonal(($func).(complex.(F.values)))) * F.vectors')
889+
retmat = (F.vectors * Diagonal(($func).(complex.(F.values)))) * F.vectors'
890+
return nonhermitianwrappertype(A)(retmat)
885891
end
886892
end
887893
end
@@ -890,9 +896,11 @@ end
890896
function acosh(A::SelfAdjoint)
891897
F = eigen(A)
892898
if all-> λ 1, F.values)
893-
return wrappertype(A)((F.vectors * Diagonal(acosh.(F.values))) * F.vectors')
899+
retmat = (F.vectors * Diagonal(acosh.(F.values))) * F.vectors'
900+
return wrappertype(A)(retmat)
894901
else
895-
return nonhermitianwrappertype(A)((F.vectors * Diagonal(acosh.(complex.(F.values)))) * F.vectors')
902+
retmat = (F.vectors * Diagonal(acosh.(complex.(F.values)))) * F.vectors'
903+
return nonhermitianwrappertype(A)(retmat)
896904
end
897905
end
898906

@@ -910,9 +918,11 @@ end
910918
function log(A::SelfAdjoint)
911919
F = eigen(A)
912920
if all-> λ > 0, F.values)
913-
return wrappertype(A)((F.vectors * Diagonal(log.(F.values))) * F.vectors')
921+
retmat = (F.vectors * Diagonal(log.(F.values))) * F.vectors'
922+
return wrappertype(A)(retmat)
914923
else
915-
return nonhermitianwrappertype(A)((F.vectors * Diagonal(log.(complex.(F.values)))) * F.vectors')
924+
retmat = (F.vectors * Diagonal(log.(complex.(F.values)))) * F.vectors'
925+
return nonhermitianwrappertype(A)(retmat)
916926
end
917927
end
918928

@@ -921,9 +931,11 @@ function sqrt(A::SelfAdjoint; rtol = eps(real(float(eltype(A)))) * size(A, 1))
921931
F = eigen(A)
922932
λ₀ = -maximum(abs, F.values) * rtol # treat λ ≥ λ₀ as "zero" eigenvalues up to roundoff
923933
if all-> λ λ₀, F.values)
924-
return wrappertype(A)((F.vectors * Diagonal(sqrt.(max.(0, F.values)))) * F.vectors')
934+
retmat = (F.vectors * Diagonal(sqrt.(max.(0, F.values)))) * F.vectors'
935+
return wrappertype(A)(retmat)
925936
else
926-
return nonhermitianwrappertype(A)((F.vectors * Diagonal(sqrt.(complex.(F.values)))) * F.vectors')
937+
retmat = (F.vectors * Diagonal(sqrt.(complex.(F.values)))) * F.vectors'
938+
return nonhermitianwrappertype(A)(retmat)
927939
end
928940
end
929941

0 commit comments

Comments
 (0)