From fdff8da506edd668609491b4df6dfa90f6fcd26e Mon Sep 17 00:00:00 2001 From: Pablo Brubeck Date: Wed, 22 Jan 2025 16:47:52 +0000 Subject: [PATCH] Fix for Delta(int, Index) --- gem/gem.py | 12 +----------- gem/optimise.py | 2 +- 2 files changed, 2 insertions(+), 12 deletions(-) diff --git a/gem/gem.py b/gem/gem.py index f8f65ea9..782c1e8f 100644 --- a/gem/gem.py +++ b/gem/gem.py @@ -982,19 +982,9 @@ def __new__(cls, i, j, dtype=None): return one # Fixed indices - if isinstance(i, int) and isinstance(j, int): + if isinstance(i, Integral) and isinstance(j, Integral): return one if i == j else Zero() - if isinstance(i, int): - expr = numpy.full((j.extent), Zero(), dtype=object) - expr[i] = one - return Indexed(ListTensor(expr), (j,)) - - if isinstance(j, int): - expr = numpy.full((i.extent), Zero(), dtype=object) - expr[j] = one - return Indexed(ListTensor(expr), (i,)) - self = super(Delta, cls).__new__(cls) self.i = i self.j = j diff --git a/gem/optimise.py b/gem/optimise.py index 6f83271e..c56ba7fb 100644 --- a/gem/optimise.py +++ b/gem/optimise.py @@ -623,7 +623,7 @@ def _replace_delta_delta(node, self): return Indexed(Identity(size), (i, j)) else: def expression(index): - if isinstance(index, int): + if isinstance(index, Integral): return Literal(index) elif isinstance(index, VariableIndex): return index.expression