diff --git a/pystencils/backends/cbackend.py b/pystencils/backends/cbackend.py index f9bf0b1291997dc3617403db72fb6b85691da17a..e22c21c7c01af379559b40fac12aee02712ae9ea 100644 --- a/pystencils/backends/cbackend.py +++ b/pystencils/backends/cbackend.py @@ -13,7 +13,7 @@ except ImportError: from sympy.printing.ccode import CCodePrinter # for sympy versions < 1.1 from pystencils.integer_functions import bitwise_xor, bit_shift_right, bit_shift_left, bitwise_and, \ - bitwise_or, modulo_ceil, int_div, int_power_of_2, int_mod + bitwise_or, modulo_ceil, int_div, int_power_of_2, int_mod, inc_post from pystencils.astnodes import Node, KernelFunction from pystencils.data_types import create_type, PointerType, get_type_of_expression, VectorType, cast_func, \ vector_memory_access, reinterpret_cast_func @@ -311,6 +311,8 @@ class CustomSympyPrinter(CCodePrinter): return "((%s) / (%s))" % (self._print(expr.args[0]), self._print(expr.args[1])) elif expr.func == int_mod: return "((%s) %% (%s))" % (self._print(expr.args[0]), self._print(expr.args[1])) + elif expr.func == inc_post: + return "(%s++)" % (self._print(expr.args[0])) else: return super(CustomSympyPrinter, self)._print_Function(expr) diff --git a/pystencils/integer_functions.py b/pystencils/integer_functions.py index 5b243622eb6d1708d1fda514d66e0f6eec47a020..eb60dde7c5b663af931280072d656f2c9510fdf4 100644 --- a/pystencils/integer_functions.py +++ b/pystencils/integer_functions.py @@ -11,6 +11,7 @@ bitwise_or = sp.Function("bitwise_or") int_div = sp.Function("int_div") int_power_of_2 = sp.Function("int_power_of_2") int_mod = sp.Function("int_mod") +inc_post = sp.Function("inc_post") # noinspection PyPep8Naming