Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Jonas Plewinski
pystencils
Commits
e012de4b
Commit
e012de4b
authored
Apr 26, 2019
by
Nils Kohl
🌝
Committed by
Martin Bauer
Apr 26, 2019
Browse files
Added int_div and int_power_of_2 functions
parent
a95b6503
Changes
2
Hide whitespace changes
Inline
Side-by-side
pystencils/backends/cbackend.py
View file @
e012de4b
...
...
@@ -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
bitwise_or
,
modulo_ceil
,
int_div
,
int_power_of_2
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
...
...
@@ -301,6 +301,10 @@ class CustomSympyPrinter(CCodePrinter):
return
"({})"
.
format
(
self
.
_print
(
1
/
sp
.
sqrt
(
expr
.
args
[
0
])))
elif
expr
.
func
in
infix_functions
:
return
"(%s %s %s)"
%
(
self
.
_print
(
expr
.
args
[
0
]),
infix_functions
[
expr
.
func
],
self
.
_print
(
expr
.
args
[
1
]))
elif
expr
.
func
==
int_power_of_2
:
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
]))
else
:
return
super
(
CustomSympyPrinter
,
self
).
_print_Function
(
expr
)
...
...
pystencils/integer_functions.py
View file @
e012de4b
...
...
@@ -8,6 +8,8 @@ bit_shift_right = sp.Function("bit_shift_right")
bit_shift_left
=
sp
.
Function
(
"bit_shift_left"
)
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"
)
# noinspection PyPep8Naming
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment