From 5c7a50d8873f5854c98b60a34ce335d98ffa1c92 Mon Sep 17 00:00:00 2001 From: Martin Bauer <martin.bauer@fau.de> Date: Tue, 6 Mar 2018 14:23:57 +0100 Subject: [PATCH] Pyphasefield updates --- transformations/transformations.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/transformations/transformations.py b/transformations/transformations.py index 73bc8361d..299201f0c 100644 --- a/transformations/transformations.py +++ b/transformations/transformations.py @@ -1,6 +1,7 @@ from collections import defaultdict, OrderedDict from operator import attrgetter from copy import deepcopy +import functools import sympy as sp from sympy.logic.boolalg import Boolean @@ -22,6 +23,9 @@ def filteredTreeIteration(node, nodeType): def fastSubs(term, subsDict): """Similar to sympy subs function. This version is much faster for big substitution dictionaries than sympy version""" + if type(term) is sp.Matrix: + return term.copy().applyfunc(functools.partial(fastSubs, subsDict=subsDict)) + def visit(expr): if expr in subsDict: return subsDict[expr] @@ -293,6 +297,7 @@ def substituteArrayAccessesWithConstants(astNode): for a in astNode.args: substituteArrayAccessesWithConstants(a) + def resolveBufferAccesses(astNode, baseBufferIndex, readOnlyFieldNames=set()): def visitSympyExpr(expr, enclosingBlock, sympyAssignment): if isinstance(expr, Field.Access): -- GitLab