@@ -147,43 +147,43 @@ end
147147
148148# ## tri products
149149
150- function X_A_Xt (a:: ScalMat , x:: AbstractMatrix )
150+ function X_A_Xt (a:: ScalMat , x:: AbstractMatrix{<:Real} )
151151 @check_argdims LinearAlgebra. checksquare (a) == size (x, 2 )
152- a. value * (x * transpose (x))
152+ return Symmetric ( a. value * (x * transpose (x) ))
153153end
154154
155- function Xt_A_X (a:: ScalMat , x:: AbstractMatrix )
155+ function Xt_A_X (a:: ScalMat , x:: AbstractMatrix{<:Real} )
156156 @check_argdims LinearAlgebra. checksquare (a) == size (x, 1 )
157- a. value * (transpose (x) * x)
157+ return Symmetric ( a. value * (transpose (x) * x) )
158158end
159159
160- function X_invA_Xt (a:: ScalMat , x:: AbstractMatrix )
160+ function X_invA_Xt (a:: ScalMat , x:: AbstractMatrix{<:Real} )
161161 @check_argdims LinearAlgebra. checksquare (a) == size (x, 2 )
162- ( x * transpose (x)) / a. value
162+ return Symmetric (( x * transpose (x)) / a. value)
163163end
164164
165- function Xt_invA_X (a:: ScalMat , x:: AbstractMatrix )
165+ function Xt_invA_X (a:: ScalMat , x:: AbstractMatrix{<:Real} )
166166 @check_argdims LinearAlgebra. checksquare (a) == size (x, 1 )
167- ( transpose (x) * x) / a. value
167+ return Symmetric (( transpose (x) * x) / a. value)
168168end
169169
170170# Specializations for `x::Matrix` with reduced allocations
171- function X_A_Xt (a:: ScalMat , x:: Matrix )
171+ function X_A_Xt (a:: ScalMat , x:: Matrix{<:Real} )
172172 @check_argdims LinearAlgebra. checksquare (a) == size (x, 2 )
173- lmul! (a. value, x * transpose (x))
173+ return Symmetric ( lmul! (a. value, x * transpose (x) ))
174174end
175175
176- function Xt_A_X (a:: ScalMat , x:: Matrix )
176+ function Xt_A_X (a:: ScalMat , x:: Matrix{<:Real} )
177177 @check_argdims LinearAlgebra. checksquare (a) == size (x, 1 )
178- lmul! (a. value, transpose (x) * x)
178+ return Symmetric ( lmul! (a. value, transpose (x) * x) )
179179end
180180
181- function X_invA_Xt (a:: ScalMat , x:: Matrix )
181+ function X_invA_Xt (a:: ScalMat , x:: Matrix{<:Real} )
182182 @check_argdims LinearAlgebra. checksquare (a) == size (x, 2 )
183- _rdiv! (x * transpose (x), a. value)
183+ return Symmetric ( _rdiv! (x * transpose (x), a. value) )
184184end
185185
186- function Xt_invA_X (a:: ScalMat , x:: Matrix )
186+ function Xt_invA_X (a:: ScalMat , x:: Matrix{<:Real} )
187187 @check_argdims LinearAlgebra. checksquare (a) == size (x, 1 )
188- _rdiv! (transpose (x) * x, a. value)
188+ return Symmetric ( _rdiv! (transpose (x) * x, a. value) )
189189end
0 commit comments