diff --git a/sumpy/codegen.py b/sumpy/codegen.py index 3b19fcb9ef7c821399cc3cf830cb8fe198625c6d..c4857fca0643f8106de1e3e9d4a8421dafa32e2d 100644 --- a/sumpy/codegen.py +++ b/sumpy/codegen.py @@ -290,7 +290,8 @@ class BesselDerivativeReplacer(CSECachingIdentityMapper, CallExternalRecMapper): 2**(-k)*sum( (-1)**idx*int(sym.binomial(k, idx)) * function(i, arg) for idx, i in enumerate(range(order-k, order+k+1, 2))), - f"d{n_derivs}_{function.name}_{order_str}") + f"d{n_derivs}_{function.name}_{order_str}", + scope=prim.cse_scope.EVALUATION) else: return CSECachingIdentityMapper.map_call( rec_self or self, expr, rec_self, *args) diff --git a/sumpy/kernel.py b/sumpy/kernel.py index 6c50350b396fe82bde8ddbedd84e781db6e0901a..76027809370555f17467e6f7ef113033c010fa9a 100644 --- a/sumpy/kernel.py +++ b/sumpy/kernel.py @@ -1077,11 +1077,12 @@ class _VectorIndexAdder(CSECachingMapperMixin, IdentityMapper): self.additional_indices = additional_indices def map_subscript(self, expr): - from pymbolic.primitives import CommonSubexpression + from pymbolic.primitives import CommonSubexpression, cse_scope if expr.aggregate.name == self.vec_name \ and isinstance(expr.index, int): - return CommonSubexpression(expr.aggregate.index( - (expr.index,) + self.additional_indices)) + return CommonSubexpression( + expr.aggregate.index((expr.index,) + self.additional_indices), + prefix=None, scope=cse_scope.EVALUATION) else: return IdentityMapper.map_subscript(self, expr)