Skip to content
Snippets Groups Projects
Commit f844e10c authored by Jean-Baptiste Keck's avatar Jean-Baptiste Keck
Browse files

Fixed 1D enum array code generation, closes #4

parent 08074e5f
No related branches found
No related tags found
No related merge requests found
Pipeline #
...@@ -172,15 +172,19 @@ class EnumFactory(object): ...@@ -172,15 +172,19 @@ class EnumFactory(object):
return CodegenVariable(name=name,typegen=typegen,ctype=dtype_to_ctype(cls.dtype), return CodegenVariable(name=name,typegen=typegen,ctype=dtype_to_ctype(cls.dtype),
value=value,svalue=svalue,**kwds) value=value,svalue=svalue,**kwds)
def __array_variable(cls,name,typegen,vals,**kwds): def __array_variable(cls,name,typegen,vals,**kwds):
from hysop.backend.device.codegen.base.variables import CodegenArray, \ from hysop.backend.device.codegen.base.variables import dtype_to_ctype, \
dtype_to_ctype CodegenVariable, CodegenArray
assert vals is not None assert vals is not None
size = len(vals) size = len(vals)
value = [getattr(cls,cls.svalue(v)) if isinstance(v, (int,long)) value = [getattr(cls,cls.svalue(v)) if isinstance(v, (int,long))
else v for v in vals] else v for v in vals]
svalue = [cls.svalue(v) if isinstance(v, (int,long)) else str(v) for v in vals] svalue = [cls.svalue(v) if isinstance(v, (int,long)) else str(v) for v in vals]
return CodegenArray(name=name,typegen=typegen,ctype=dtype_to_ctype(cls.dtype), if len(vals)==1:
value=value,svalue=svalue,dim=1,**kwds) return CodegenVariable(name=name,typegen=typegen,ctype=dtype_to_ctype(cls.dtype),
value=value[0],svalue=svalue[0],**kwds)
else:
return CodegenArray(name=name,typegen=typegen,ctype=dtype_to_ctype(cls.dtype),
value=value,svalue=svalue,dim=1,**kwds)
mcls_dic = {'name':name, mcls_dic = {'name':name,
'dtype':dtype, 'dtype':dtype,
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment