Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Alexander Reinauer
pystencils
Commits
659319bd
Commit
659319bd
authored
Jan 16, 2020
by
Michael Kuron
Browse files
Correctly print sp.Abs in generated code
parent
b63cb073
Changes
2
Hide whitespace changes
Inline
Side-by-side
pystencils/backends/cbackend.py
View file @
659319bd
...
...
@@ -353,6 +353,12 @@ class CustomSympyPrinter(CCodePrinter):
result
=
super
(
CustomSympyPrinter
,
self
).
_print_Piecewise
(
expr
)
return
result
.
replace
(
"
\n
"
,
""
)
def
_print_Abs
(
self
,
expr
):
if
expr
.
is_integer
:
return
'abs({0})'
.
format
(
self
.
_print
(
expr
.
args
[
0
]))
else
:
return
'fabs({0})'
.
format
(
self
.
_print
(
expr
.
args
[
0
]))
def
_print_Type
(
self
,
node
):
return
str
(
node
)
...
...
pystencils/cpu/vectorization.py
View file @
659319bd
...
...
@@ -176,6 +176,10 @@ def insert_vector_casts(ast_node):
visit_expr
(
expr
.
args
[
4
]))
elif
isinstance
(
expr
,
cast_func
):
return
expr
elif
expr
.
func
is
sp
.
Abs
:
new_arg
=
visit_expr
(
expr
.
args
[
0
])
pw
=
sp
.
Piecewise
((
-
1
*
new_arg
,
new_arg
<
0
),
(
new_arg
,
True
))
return
visit_expr
(
pw
)
elif
expr
.
func
in
handled_functions
or
isinstance
(
expr
,
sp
.
Rel
)
or
isinstance
(
expr
,
BooleanFunction
):
new_args
=
[
visit_expr
(
a
)
for
a
in
expr
.
args
]
arg_types
=
[
get_type_of_expression
(
a
)
for
a
in
new_args
]
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new 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