From 62c29c55d626ea030cb70e02889126fb281737bc Mon Sep 17 00:00:00 2001
From: "Philipp Frank (pfrank)" <philipp@mpa-garching.mpg.de>
Date: Tue, 24 Apr 2018 17:43:55 +0200
Subject: [PATCH] Another Hotfix for krylov sampling caching

---
 nifty4/library/krylov_sampling.py | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/nifty4/library/krylov_sampling.py b/nifty4/library/krylov_sampling.py
index 95b535b3e..59d5ab4c2 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
-- 
GitLab