Cyclops Tensor Framework
parallel arithmetic on multidimensional arrays
cyclic_reshuffle.h
Go to the documentation of this file.
1 /*Copyright (c) 2011, Edgar Solomonik, all rights reserved.*/
2 
3 #ifndef __CYCLIC_RESHUFFLE_H__
4 #define __CYCLIC_RESHUFFLE_H__
5 
6 #include "../tensor/algstrct.h"
7 #include "../mapping/distribution.h"
8 #include "redist.h"
9 
10 namespace CTF_int {
11 
36  void pad_cyclic_pup_virt_buff(int const * sym,
37  distribution const & old_dist,
38  distribution const & new_dist,
39  int const * len,
40  int const * old_phys_dim,
41  int const * old_phys_edge_len,
42  int const * old_virt_edge_len,
43  int64_t old_virt_nelem,
44  int const * old_offsets,
45  int * const * old_permutation,
46  int total_np,
47  int const * new_phys_dim,
48  int const * new_phys_edge_len,
49  int const * new_virt_edge_len,
50  int64_t new_virt_nelem,
51  char * old_data,
52  char ** new_data,
53  int forward,
54  int * const * bucket_offset,
55  char const * alpha,
56  char const * beta,
57  algstrct const * sr);
58 
79  void cyclic_reshuffle(int const * sym,
80  distribution const & old_dist,
81  int const * old_offsets,
82  int * const * old_permutation,
83  distribution const & new_dist,
84  int const * new_offsets,
85  int * const * new_permutation,
86  char ** tsr_data,
87  char ** tsr_cyclic_data,
88  algstrct const * sr,
89  CommData ord_glb_comm,
90  bool reuse_buffers,
91  char const * alpha,
92  char const * beta);
93 }
94 #endif
void cyclic_reshuffle(int const *sym, distribution const &old_dist, int const *old_offsets, int *const *old_permutation, distribution const &new_dist, int const *new_offsets, int *const *new_permutation, char **ptr_tsr_data, char **ptr_tsr_cyclic_data, algstrct const *sr, CommData ord_glb_comm, bool reuse_buffers, char const *alpha, char const *beta)
Goes from any set of phases to any new set of phases.
void pad_cyclic_pup_virt_buff(int const *sym, distribution const &old_dist, distribution const &new_dist, int const *len, int const *old_phys_dim, int const *old_phys_edge_len, int const *old_virt_edge_len, int64_t old_virt_nelem, int const *old_offsets, int *const *old_permutation, int total_np, int const *new_phys_dim, int const *new_phys_edge_len, int const *new_virt_edge_len, int64_t new_virt_nelem, char *old_data, char **new_data, int forward, int *const *bucket_offset, char const *alpha, char const *beta, algstrct const *sr)