From 4c06e0e15cf9dd565860c4bb08163e70876b8dc9 Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner Date: Fri, 29 Jun 2012 16:00:02 -0400 Subject: [PATCH] Add build_matrix to tools. --- sumpy/tools.py | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/sumpy/tools.py b/sumpy/tools.py index 7730943d..d896920b 100644 --- a/sumpy/tools.py +++ b/sumpy/tools.py @@ -33,6 +33,26 @@ def mi_derivative(expr, vector, mi): +def build_matrix(op, dtype=None): + dtype = dtype or op.dtype + from pytools import ProgressBar + rows, cols = op.shape + pb = ProgressBar("matrix", cols) + mat = np.zeros(op.shape, dtype) + + for i in range(cols): + unit_vec = np.zeros(rows, dtype=dtype) + unit_vec[i] = 1 + mat[:,i] = op.matvec(unit_vec) + pb.progress() + + pb.finished() + + return mat + + + + def vector_to_device(queue, vec): from pytools.obj_array import with_object_array_or_scalar -- GitLab