예제 #1
0
    def __init__(
        self, name, grouping_name, num_cb_name, col_name, iter_sub_space_relation, erg_func_name, iter_space_trans
    ):
        Transformation.__init__(self, name)

        self.grouping_name = grouping_name
        self.num_cb_name = num_cb_name
        self.col_name = col_name
        self.iter_sub_space_relation = iter_sub_space_relation
        self.erg_func_name = erg_func_name
        self.iter_space_trans = iter_space_trans
예제 #2
0
	def __init__(self,name,grouping_name,num_tile_name,iter_sub_space_relation,iter_seed_space_relation,to_deps,from_deps,erg_func_name,iter_space_trans):
		Transformation.__init__(self,name)

		self.grouping_name=grouping_name
		self.num_tile_name=num_tile_name
		self.iter_sub_space_relation=iter_sub_space_relation
		self.iter_seed_space_relation=iter_seed_space_relation
		self.to_deps=to_deps
		self.from_deps=from_deps
		self.erg_func_name=erg_func_name
		self.iter_space_trans=iter_space_trans
예제 #3
0
	def __init__(self,name,reordering_name,data_arrays,iter_sub_space_relation,target_data_arrays,erg_func_name):
		Transformation.__init__(self,name)
		self.reordering_name=reordering_name
		self.data_arrays=data_arrays
		self.iter_sub_space_relation=iter_sub_space_relation
		self.target_data_arrays=target_data_arrays
		self.erg_func_name=erg_func_name

		#Calculate the data reordering relation
		self._data_reordering=Relation('{[%s_in]->[%s_out]: %s_out=%s(%s_in)}'%(5*(self.reordering_name,)))

		#Make sure the target data arrays all have the same bounds
		#We do this by unioning all bounds and simply checking that there is a single conjunction in the disjunction
		target_bounds=[data_array.bounds for data_array in self.target_data_arrays]
		unioned_bounds=reduce(lambda da1,da2: da1.union(da2),target_bounds)
		if len(unioned_bounds)!=1:
			raise ValueError('All target data arrays must have the same bounds')
예제 #4
0
	def __init__(self,name,statement_name,tiling_name,erg_func_name):
		Transformation.__init__(self,name)

		self.statement_name=statement_name
		self.tiling_name=tiling_name
		self.erg_func_name=erg_func_name
예제 #5
0
	def __init__(self,name,iter_space_trans):
		Transformation.__init__(self,name)
		self.iter_space_trans=iter_space_trans