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
Jonas Plewinski
pystencils
Commits
9ed5c20b
Commit
9ed5c20b
authored
Apr 10, 2018
by
Martin Bauer
Browse files
Removed dead code
parent
bcc92b60
Changes
2
Hide whitespace changes
Inline
Side-by-side
data_types.py
View file @
9ed5c20b
...
...
@@ -309,27 +309,6 @@ class Type(sp.Basic):
def
__new__
(
cls
,
*
args
,
**
kwargs
):
return
sp
.
Basic
.
__new__
(
cls
)
def
__lt__
(
self
,
other
):
# deprecated
# Needed for sorting the types inside an expression
if
isinstance
(
self
,
BasicType
):
if
isinstance
(
other
,
BasicType
):
return
self
.
numpy_dtype
>
other
.
numpy_dtype
# TODO const
elif
isinstance
(
other
,
PointerType
):
return
False
else
:
# isinstance(other, StructType):
raise
NotImplementedError
(
"Struct type comparison is not yet implemented"
)
elif
isinstance
(
self
,
PointerType
):
if
isinstance
(
other
,
BasicType
):
return
True
elif
isinstance
(
other
,
PointerType
):
return
self
.
base_type
>
other
.
base_type
# TODO const, restrict
else
:
# isinstance(other, StructType):
raise
NotImplementedError
(
"Struct type comparison is not yet implemented"
)
elif
isinstance
(
self
,
StructType
):
raise
NotImplementedError
(
"Struct type comparison is not yet implemented"
)
else
:
raise
NotImplementedError
def
_sympystr
(
self
,
*
args
,
**
kwargs
):
return
str
(
self
)
...
...
@@ -540,36 +519,3 @@ class StructType(object):
def
__hash__
(
self
):
return
hash
((
self
.
numpy_dtype
,
self
.
const
))
# TODO this should not work at all!!!
def
__gt__
(
self
,
other
):
if
self
.
ptr
and
not
other
.
ptr
:
return
True
if
self
.
dtype
>
other
.
dtype
:
return
True
def
get_type_from_sympy
(
node
):
"""
Creates a Type object from a Sympy object
:param node: Sympy object
:return: Type object
"""
# Rational, NumberSymbol?
# Zero, One, NegativeOne )= Integer
# Half )= Rational
# NAN, Infinity, Negative Inifinity,
# Exp1, Imaginary Unit, Pi, EulerGamma, Catalan, Golden Ratio
# Pow, Mul, Add, Mod, Relational
if
not
isinstance
(
node
,
sp
.
Number
):
raise
TypeError
(
node
,
'is not a sp.Number'
)
if
isinstance
(
node
,
sp
.
Float
)
or
isinstance
(
node
,
sp
.
RealNumber
):
return
create_type
(
'double'
),
float
(
node
)
elif
isinstance
(
node
,
sp
.
Integer
):
return
create_type
(
'int'
),
int
(
node
)
elif
isinstance
(
node
,
sp
.
Rational
):
# TODO is it always float?
return
create_type
(
'double'
),
float
(
node
.
p
/
node
.
q
)
else
:
raise
TypeError
(
node
,
' is not a supported type (yet)!'
)
transformations/transformations.py
View file @
9ed5c20b
...
...
@@ -809,50 +809,3 @@ def get_loop_hierarchy(ast_node):
if
node
:
result
.
append
(
node
.
coordinateToLoopOver
)
return
reversed
(
result
)
def
get_type
(
node
):
if
isinstance
(
node
,
ast
.
Indexed
):
return
node
.
args
[
0
].
dtype
elif
isinstance
(
node
,
ast
.
Node
):
return
node
.
dtype
# TODO sp.NumberSymbol
elif
isinstance
(
node
,
sp
.
Number
):
if
isinstance
(
node
,
sp
.
Float
):
return
create_type
(
'double'
)
elif
isinstance
(
node
,
sp
.
Integer
):
return
create_type
(
'int'
)
else
:
raise
NotImplemented
(
'Not yet supported: %s %s'
%
(
node
,
type
(
node
)))
else
:
raise
NotImplemented
(
'Not yet supported: %s %s'
%
(
node
,
type
(
node
)))
def
desympy_ast
(
node
):
"""
Remove Sympy Expressions, which have more then one argument.
This is necessary for further changes in the tree.
:param node: ast which should be traversed. Only node's children will be modified.
:return: (modified) node
"""
if
node
.
args
is
None
:
return
node
for
i
in
range
(
len
(
node
.
args
)):
arg
=
node
.
args
[
i
]
if
isinstance
(
arg
,
sp
.
Add
):
node
.
replace
(
arg
,
ast
.
Add
(
arg
.
args
,
node
))
elif
isinstance
(
arg
,
sp
.
Number
):
node
.
replace
(
arg
,
ast
.
Number
(
arg
,
node
))
elif
isinstance
(
arg
,
sp
.
Mul
):
node
.
replace
(
arg
,
ast
.
Mul
(
arg
.
args
,
node
))
elif
isinstance
(
arg
,
sp
.
Pow
):
node
.
replace
(
arg
,
ast
.
Pow
(
arg
.
args
,
node
))
elif
isinstance
(
arg
,
sp
.
tensor
.
Indexed
)
or
isinstance
(
arg
,
sp
.
tensor
.
indexed
.
Indexed
):
node
.
replace
(
arg
,
ast
.
Indexed
(
arg
.
args
,
arg
.
base
,
node
))
elif
isinstance
(
arg
,
sp
.
tensor
.
IndexedBase
):
node
.
replace
(
arg
,
arg
.
label
)
else
:
pass
for
arg
in
node
.
args
:
desympy_ast
(
arg
)
return
node
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