Skip to content

Commit 14d75de

Browse files
committed
more stable quad and invquad with vectors
1 parent c4fe96f commit 14d75de

File tree

1 file changed

+9
-2
lines changed

1 file changed

+9
-2
lines changed

src/pdmat.jl

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -68,8 +68,15 @@ end
6868

6969
### quadratic forms
7070

71-
quad(a::PDMat, x::AbstractVector) = dot(x, a * x)
72-
invquad(a::PDMat, x::AbstractVector) = dot(x, a \ x)
71+
function quad(a::PDMat, x::AbstractVector)
72+
z = a.chol.U * x
73+
dot(z, z)
74+
end
75+
76+
function invquad(a::PDMat, x::AbstractVector)
77+
z = a.chol.L \ x
78+
dot(z, z)
79+
end
7380

7481
"""
7582
quad!(r::AbstractArray, a::AbstractPDMat, x::StridedMatrix)

0 commit comments

Comments
 (0)