99
1010# HermitianRFP(A::TriangularRFP) = HermitianRFP(A.data, A.transr, A.uplo)
1111
12+ function Hermitian (A:: TriangularRFP{<:LinearAlgebra.BlasReal} , uplo:: Symbol )
13+ Symbol (A. uplo) == uplo ||
14+ throw (ArgumentError (" A.uplo = $(A. uplo) conflicts with argument uplo = $uplo " ))
15+ return Hermitian (A)
16+ end
17+
18+ function Hermitian (A:: TriangularRFP{<:LinearAlgebra.BlasReal} )
19+ return HermitianRFP (A. data, A. transr, A. uplo)
20+ end
21+
22+ Base. copy (A:: HermitianRFP{T} ) where {T} = HermitianRFP {T} (copy (A. data), A. transr, A. uplo)
23+
1224function Base. getindex (A:: HermitianRFP , i:: Integer , j:: Integer )
1325 (A. uplo == ' L' ? i < j : i > j) && return conj (getindex (A, j, i))
1426 n, k, l = checkbounds (A, i, j)
@@ -28,4 +40,16 @@ function Ac_mul_A_RFP(A::Matrix{T}, uplo = :U) where {T<:BlasFloat}
2840 return HermitianRFP (LAPACK_RFP. sfrk! (' N' , ul, tr, 1.0 , A, 0.0 , par), ' N' , ul)
2941end
3042
31- Base. copy (A:: HermitianRFP ) = HermitianRFP (copy (A. data), A. transr, A. uplo)
43+ function syrk! (
44+ trans:: AbstractChar ,
45+ α:: Real ,
46+ A:: StridedMatrix{T} ,
47+ β:: Real ,
48+ C:: HermitianRFP{T} ,
49+ ) where {T}
50+ return HermitianRFP (
51+ LAPACK_RFP. sfrk! (C. transr, C. uplo, Char (trans), α, A, β, C. data),
52+ C. transr,
53+ C. uplo,
54+ )
55+ end
0 commit comments