3 #ifndef __INT_MAPPING_H__ 4 #define __INT_MAPPING_H__ 130 int const * tsr_edge_len,
131 int const * tsr_sym_table,
134 int const * comm_idx,
145 int const * idx_map);
153 int const * idx_map);
165 int const * tsr_sym_table,
int calc_phys_rank(topology const *topo) const
compute the physical rank of a mapping
int map_tensor(int num_phys_dims, int tsr_order, int const *tsr_edge_len, int const *tsr_sym_table, int *restricted, CommData *phys_comm, int const *comm_idx, int fill, mapping *tsr_edge_map)
map a tensor
int calc_phase() const
compute the phase of a mapping
void aug_phys(topology const *topo, int idim)
adds a physical mapping to this mapping
int calc_phys_phase() const
compute the physical phase of a mapping
void copy_mapping(int order, mapping const *mapping_A, mapping *mapping_B)
copies mapping A to B
int comp_dim_map(mapping const *map_A, mapping const *map_B)
compares two mappings
int map_symtsr(int tsr_order, int const *tsr_sym_table, mapping *tsr_edge_map)
adjust a mapping to maintan symmetry
int check_self_mapping(tensor const *tsr, int const *idx_map)
checks mapping in preparation for tensors scale, summ or contract
internal distributed tensor class
mapping & operator=(mapping const &other)
int map_self_indices(tensor const *tsr, int const *idx_map)
create virtual mapping for idx_maps that have repeating indices
void aug_virt(int tot_phase)
augments mapping to have sufficient virtualization so that the total phas is exactly tot_phase (assum...
int stretch_virt(int order, int stretch_factor, mapping *maps)
stretch virtualization by a factor
void clear()
resets mapping to NOT_MAPPED