diff --git a/nifty4/library/krylov_sampling.py b/nifty4/library/krylov_sampling.py index 95b535b3e1b648de480916594fa06ce52693d612..59d5ab4c2b5cef1d295d3c70f7e3020508de99b8 100644 --- a/nifty4/library/krylov_sampling.py +++ b/nifty4/library/krylov_sampling.py @@ -65,13 +65,13 @@ def generate_krylov_samples(D_inv, S, j, N_samps, controller): r = j.copy() p = r.copy() - d = p.vdot(D_inv(p)) + Dip = D_inv(p) + d = p.vdot(Dip) while True: gamma = r.vdot(r) / d if gamma == 0.: break x = x + gamma*p - Dip = D_inv(p) for samp in y: samp += (np.random.randn() * np.sqrt(d) - samp.vdot(Dip)) / d * p energy = energy.at(x) @@ -82,6 +82,7 @@ def generate_krylov_samples(D_inv, S, j, N_samps, controller): beta = r_new.vdot(r_new) / r.vdot(r) r = r_new p = r + beta * p + Dip = D_inv(p) d = p.vdot(Dip) if d == 0.: break