Dear CS10-Gitlab-users, on Thursday, Feb 3 there will be maintenance. That will lead to a downtime of the CS10-Gitlab-service including Subversion and Mattermost chat from 09:30. This might take the whole day since we don't know how long it is going to take. We are sorry for the inconvenience! Best regards, CS10-Admin-Team

Commit 37650bc9 authored by Nils Kohl's avatar Nils Kohl 🌝
Browse files

Added new sympy integer function: integer modulo, extended cbackend

parent 102f07f8
......@@ -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
bitwise_or, modulo_ceil, int_div, int_power_of_2, int_mod
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
......@@ -308,6 +308,8 @@ class CustomSympyPrinter(CCodePrinter):
return "(1 << (%s))" % (self._print(expr.args[0]))
elif expr.func == int_div:
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]))
return super(CustomSympyPrinter, self)._print_Function(expr)
......@@ -10,6 +10,7 @@ bitwise_and = sp.Function("bitwise_and")
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")
# noinspection PyPep8Naming
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment