From 424e616de85da379287e4b702c8aa865ad1cc40a Mon Sep 17 00:00:00 2001
From: Isuru Fernando <isuruf@gmail.com>
Date: Fri, 26 Jan 2018 16:12:53 -0600
Subject: [PATCH] Use projection matrix

---
 sumpy/expansion/__init__.py | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/sumpy/expansion/__init__.py b/sumpy/expansion/__init__.py
index c060b8da..d43379a6 100644
--- a/sumpy/expansion/__init__.py
+++ b/sumpy/expansion/__init__.py
@@ -408,9 +408,9 @@ class NewLinearRecurrenceBasedDerivativeWrangler \
         if len(pde_mat) > 0:
             pde_mat = np.array(pde_mat, dtype=np.float64)
             n = nullspace(pde_mat, atol=tol)
-            k, idx, _ = interp_decomp(n.T, tol)
+            k, idx, proj = interp_decomp(n.T, tol)
+            s = np.hstack([np.eye(k), proj])[:, np.argsort(idx)]
             idx = idx[:k]
-            s = np.linalg.solve(n[idx, :].T, n.T).T
             stored_identifiers = [mis[i] for i in idx]
         else:
             s = np.eye(len(mis))
-- 
GitLab