Cyclops Tensor Framework
parallel arithmetic on multidimensional arrays
iter_tsr.h File Reference
#include "util.h"
Include dependency graph for iter_tsr.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

 CTF_int
 

Macros

#define GET_MIN_MAX(__X, nr, wd)
 
#define CHECK_SYM(__X)
 
#define RESET_IDX(__X)
 

Functions

void CTF_int::compute_syoff (int r, int len, algstrct const *sr, int const *edge_len, int const *sym, uint64_t *offsets)
 

Macro Definition Documentation

#define CHECK_SYM (   __X)
Value:
do { \
sym_pass = 1; \
for (i=0; i<order_##__X; i++){ \
if (sym_##__X[i] != NS){ \
if (idx_glb[idx_map_##__X[i+1]] < \
idx_glb[idx_map_##__X[i]]) { \
sym_pass = 0; \
break; \
} \
} \
} \
} while(0)
Definition: common.h:37

Definition at line 52 of file iter_tsr.h.

Referenced by CTF_int::sym_seq_ctr_cust(), CTF_int::sym_seq_ctr_inr(), CTF_int::sym_seq_ctr_ref(), CTF_int::sym_seq_scl_cust(), CTF_int::sym_seq_scl_ref(), CTF_int::sym_seq_sum_cust(), CTF_int::sym_seq_sum_inr(), and CTF_int::sym_seq_sum_ref().

#define GET_MIN_MAX (   __X,
  nr,
  wd 
)
Value:
do{ \
i##__X = rev_idx_map[wd*idx+nr]; \
if (i##__X != -1){ \
imax = MIN(imax, edge_len_##__X[i##__X]); \
/*if (sym_##__X[i##__X] > -1){ \
imax = MIN(imax, idx_glb[idx_map_##__X[sym_##__X[i##__X]]]+1); \
} \
if (i##__X > 0 && sym_##__X[i##__X-1] > -1){ \
imin = MAX(imin, idx_glb[idx_map_##__X[i##__X-1]]); \
}*/ \
} \
} while (0);
#define MIN(a, b)
Definition: util.h:176

Definition at line 16 of file iter_tsr.h.

Referenced by CTF_int::sym_seq_ctr_cust(), CTF_int::sym_seq_ctr_inr(), CTF_int::sym_seq_ctr_ref(), CTF_int::sym_seq_scl_cust(), CTF_int::sym_seq_scl_ref(), CTF_int::sym_seq_sum_cust(), CTF_int::sym_seq_sum_inr(), and CTF_int::sym_seq_sum_ref().

#define RESET_IDX (   __X)
Value:
do { \
idx_##__X = idx_glb[idx_map_##__X[0]]; \
off_idx = 0, off_lda = 1; \
for (i=1; i<order_##__X; i++){ \
if (sym_##__X[i-1] == NS){ \
off_idx = i; \
off_lda = sy_packed_size(i, dlen_##__X, sym_##__X); \
idx_##__X += off_lda*idx_glb[idx_map_##__X[i]]; \
} else if (idx_glb[idx_map_##__X[i]]!=0) { \
k = 1; \
dlen_##__X[i] = idx_glb[idx_map_##__X[i]]; \
do { \
dlen_##__X[i-k] = idx_glb[idx_map_##__X[i]]; \
k++; \
} while (i>=k && sym_##__X[i-k] != NS); \
idx_##__X += off_lda*sy_packed_size(i+1-off_idx, \
dlen_##__X+off_idx,sym_##__X+off_idx); \
for (j=0; j<k; j++){ \
dlen_##__X[i-j] = edge_len_##__X[i-j]; \
} \
} \
} \
} while (0)
Definition: common.h:37
int64_t sy_packed_size(int order, const int *len, const int *sym)
computes the size of a tensor in SY (NOT HOLLOW) packed symmetric layout
Definition: util.cxx:10

Definition at line 67 of file iter_tsr.h.

Referenced by CTF_int::sym_seq_ctr_cust(), CTF_int::sym_seq_ctr_inr(), CTF_int::sym_seq_ctr_ref(), CTF_int::sym_seq_scl_cust(), CTF_int::sym_seq_scl_ref(), CTF_int::sym_seq_sum_cust(), CTF_int::sym_seq_sum_inr(), and CTF_int::sym_seq_sum_ref().