Skip to content

Commit

Permalink
kernel svd bugfix for overdetermined problems
Browse files Browse the repository at this point in the history
  • Loading branch information
aris-mav committed Dec 6, 2024
1 parent cb26ada commit b4b1327
Showing 1 changed file with 9 additions and 4 deletions.
13 changes: 9 additions & 4 deletions src/kernels.jl
Original file line number Diff line number Diff line change
Expand Up @@ -33,10 +33,15 @@ to remove the "noisy" singular values.
"""
function create_kernel(seq::Type{<:pulse_sequence1D}, x::Vector, X::Vector, g::Vector{<:Real})

usv = svd(create_kernel(seq, x , X))

K_new = Diagonal(usv.S) * usv.V'
g_new = usv.U' * g
if x < X
usv = svd(create_kernel(seq, x , X))
K_new = Diagonal(usv.S) * usv.V'
g_new = usv.U' * g
else
usv = svd(create_kernel(seq, x , X),full=true)
K_new = [Diagonal(usv.S) ; zeros(size(usv.U,1)-length(usv.S),length(usv.S))] * usv.V'
g_new = usv.U' * g
end

return svd_kernel_struct(K_new, g_new, usv.U, usv.S, usv.V)

Expand Down

0 comments on commit b4b1327

Please sign in to comment.