Cyclops Tensor Framework
parallel arithmetic on multidimensional arrays
sym_seq_ctr.h
Go to the documentation of this file.
1 #ifndef __SYM_SEQ_CTR_H__
2 #define __SYM_SEQ_CTR_H__
3 
4 #include "../tensor/algstrct.h"
5 #include "../interface/functions.h"
6 
7 namespace CTF_int {
8 
9  void compute_syoffs(algstrct const * sr_A,
10  int order_A,
11  int const * edge_len_A,
12  int const * sym_A,
13  int const * idx_map_A,
14  algstrct const * sr_B,
15  int order_B,
16  int const * edge_len_B,
17  int const * sym_B,
18  int const * idx_map_B,
19  algstrct const * sr_C,
20  int order_C,
21  int const * edge_len_C,
22  int const * sym_C,
23  int const * idx_map_C,
24  int tot_order,
25  int const * rev_idx_map,
26  uint64_t **& offsets_A,
27  uint64_t **& offsets_B,
28  uint64_t **& offsets_C);
29 
30 
34  int sym_seq_ctr_ref(char const * alpha,
35  char const * A,
36  algstrct const * sr_A,
37  int order_A,
38  int const * edge_len_A,
39  int const * sym_A,
40  int const * idx_map_A,
41  char const * B,
42  algstrct const * sr_B,
43  int order_B,
44  int const * edge_len_B,
45  int const * sym_B,
46  int const * idx_map_B,
47  char const * beta,
48  char * C,
49  algstrct const * sr_C,
50  int order_C,
51  int const * edge_len_C,
52  int const * sym_C,
53  int const * idx_map_C);
54 
58  int sym_seq_ctr_cust(char const * alpha,
59  char const * A,
60  algstrct const * sr_A,
61  int order_A,
62  int const * edge_len_A,
63  int const * sym_A,
64  int const * idx_map_A,
65  char const * B,
66  algstrct const * sr_B,
67  int order_B,
68  int const * edge_len_B,
69  int const * sym_B,
70  int const * idx_map_B,
71  char const * beta,
72  char * C,
73  algstrct const * sr_C,
74  int order_C,
75  int const * edge_len_C,
76  int const * sym_C,
77  int const * idx_map_C,
78  bivar_function const * func);
79 
80 
84  int sym_seq_ctr_inr(char const * alpha,
85  char const * A,
86  algstrct const * sr_A,
87  int order_A,
88  int const * edge_len_A,
89  int const * sym_A,
90  int const * idx_map_A,
91  char const * B,
92  algstrct const * sr_B,
93  int order_B,
94  int const * edge_len_B,
95  int const * sym_B,
96  int const * idx_map_B,
97  char const * beta,
98  char * C,
99  algstrct const * sr_C,
100  int order_C,
101  int const * edge_len_C,
102  int const * sym_C,
103  int const * idx_map_C,
104  iparam const * prm,
105  bivar_function const * func);
106 }
107 #endif
void compute_syoffs(algstrct const *sr_A, int order_A, int const *edge_len_A, int const *sym_A, int const *idx_map_A, algstrct const *sr_B, int order_B, int const *edge_len_B, int const *sym_B, int const *idx_map_B, algstrct const *sr_C, int order_C, int const *edge_len_C, int const *sym_C, int const *idx_map_C, int tot_order, int const *rev_idx_map, uint64_t **&offsets_A, uint64_t **&offsets_B, uint64_t **&offsets_C)
int bivar_function(int n, World &dw)
int sym_seq_ctr_cust(char const *alpha, char const *A, algstrct const *sr_A, int order_A, int const *edge_len_A, int const *sym_A, int const *idx_map_A, char const *B, algstrct const *sr_B, int order_B, int const *edge_len_B, int const *sym_B, int const *idx_map_B, char const *beta, char *C, algstrct const *sr_C, int order_C, int const *edge_len_C, int const *sym_C, int const *idx_map_C, bivar_function const *func)
performs symmetric contraction with custom elementwise function
int sym_seq_ctr_ref(char const *alpha, char const *A, algstrct const *sr_A, int order_A, int const *edge_len_A, int const *sym_A, int const *idx_map_A, char const *B, algstrct const *sr_B, int order_B, int const *edge_len_B, int const *sym_B, int const *idx_map_B, char const *beta, char *C, algstrct const *sr_C, int order_C, int const *edge_len_C, int const *sym_C, int const *idx_map_C)
performs symmetric contraction with reference (unblocked) kernel
int sym_seq_ctr_inr(char const *alpha, char const *A, algstrct const *sr_A, int order_A, int const *edge_len_A, int const *sym_A, int const *idx_map_A, char const *B, algstrct const *sr_B, int order_B, int const *edge_len_B, int const *sym_B, int const *idx_map_B, char const *beta, char *C, algstrct const *sr_C, int order_C, int const *edge_len_C, int const *sym_C, int const *idx_map_C, iparam const *prm, bivar_function const *func)
performs symmetric contraction with blocked gemm