@@ -335,8 +335,8 @@ Hermitian{T,S}(A::Hermitian) where {T,S<:AbstractMatrix{T}} = Hermitian{T,S}(con
335335AbstractMatrix {T} (A:: Hermitian ) where {T} = Hermitian (convert (AbstractMatrix{T}, A. data), sym_uplo (A. uplo))
336336AbstractMatrix {T} (A:: Hermitian{T} ) where {T} = copy (A)
337337
338- copy (A:: Symmetric{T,S} ) where {T,S} = (B = copy (A . data); Symmetric {T,typeof(B)} (B, A. uplo))
339- copy (A:: Hermitian{T,S} ) where {T,S} = (B = copy (A . data); Hermitian {T,typeof(B)} (B, A. uplo))
338+ copy (A:: Symmetric ) = (Symmetric ( parentof_applytri (copy, B), sym_uplo ( A. uplo) ))
339+ copy (A:: Hermitian ) = (Hermitian ( parentof_applytri (copy, B), sym_uplo ( A. uplo) ))
340340
341341function copyto! (dest:: Symmetric , src:: Symmetric )
342342 if src. uplo == dest. uplo
@@ -422,7 +422,8 @@ Base.copy(A::Transpose{<:Any,<:Hermitian}) =
422422tr (A:: Symmetric ) = tr (A. data) # to avoid AbstractMatrix fallback (incl. allocations)
423423tr (A:: Hermitian ) = real (tr (A. data))
424424
425- Base. conj (A:: HermOrSym ) = typeof (A)(parentof_applytri (conj, A), A. uplo)
425+ Base. conj (A:: Symmetric ) = Symmetric (parentof_applytri (conj, A), sym_uplo (A. uplo))
426+ Base. conj (A:: Hermitian ) = Hermitian (parentof_applytri (conj, A), sym_uplo (A. uplo))
426427Base. conj! (A:: HermOrSym ) = typeof (A)(parentof_applytri (conj!, A), A. uplo)
427428
428429# tril/triu
0 commit comments