3 #ifndef __DGTOG_CALC_CNT_H__     4 #define __DGTOG_CALC_CNT_H__     6 #include "../tensor/algstrct.h"     7 #include "../mapping/distribution.h"    16                    int const * rep_phase,
    20                    int const * loc_edge_len);
    27                         int const * rep_phase,
    31                         int const * loc_edge_len);
    37                      int const * rep_phase,
    38                      int const * rep_phase_lda,
    40                      int const * phys_phase,
    43                      int const * loc_edge_len);
    47                        distribution 
const & old_dist,
    48                        distribution 
const & new_dist,
    54                              int * 
const *   pe_offset,
    55                              int * 
const *   bucket_offset,
    56                              int64_t 
const * old_counts,
    63                           distribution 
const & new_dist,
    66                           int const *          rep_phase,
    67                           int const *          phys_edge_len,
    68                           int const *          virt_edge_len,
    74                           int64_t **           data_offset,
    78                      int64_t * 
const *    data_offset,
    79                      int * 
const *        ivmax_pre,
    83                      char * __restrict__  data,
    84                      char ** __restrict__ buckets,
 void redist_bucket(int *const *bucket_offset, int64_t *const *data_offset, int *const *ivmax_pre, int rep_phase0, int virt_dim0, bool data_to_buckets, char *__restrict__ data, char **__restrict__ buckets, int64_t *counts, algstrct const *sr, int64_t data_off, int bucket_off, int prev_idx)
 
void calc_drv_cnts(int order, int const *sym, int64_t *counts, int const *rep_phase, int const *rep_phase_lda, int const *sphase, int const *phys_phase, int *gidx_off, int const *edge_len, int const *loc_edge_len)
 
void calc_drv_displs(int const *sym, int const *edge_len, distribution const &old_dist, distribution const &new_dist, int64_t *counts, int idx_lyr)
 
int64_t * calc_sy_pfx(int const *sym, int const *rep_phase, int const *sphase, int const *gidx_off, int const *edge_len, int const *loc_edge_len)
computes the cardinality of the sets of elements of a tensor of order idim+1 for different values of ...
 
int64_t calc_cnt(int const *sym, int const *rep_phase, int const *sphase, int const *gidx_off, int const *edge_len, int const *loc_edge_len)
computes the cardinality of the set of elements of a tensor of order idim+1 that are owned by process...
 
void precompute_offsets(distribution const &old_dist, distribution const &new_dist, int const *sym, int const *len, int const *rep_phase, int const *phys_edge_len, int const *virt_edge_len, int const *virt_dim, int const *virt_lda, int64_t virt_nelem, int **pe_offset, int **bucket_offset, int64_t **data_offset, int **ivmax_pre)
 
void calc_cnt_from_rep_cnt(int const *rep_phase, int *const *pe_offset, int *const *bucket_offset, int64_t const *old_counts, int64_t *counts, int bucket_off, int pe_off, int dir)