6 #include "../tensor/algstrct.h" 7 #include "../interface/fun_term.h" 16 void (*
f)(
char const *,
char *);
25 virtual void apply_f(
char const *
a,
char *
b)
const {
f(a,b); }
43 univar_function(
void (*f_)(
char const *,
char *),
bool is_dist) {
f=f_; is_distributive=is_dist; }
77 virtual void run() {};
84 virtual int64_t
mem_fp() {
return 0; };
142 int const * phys_mapped,
204 #endif // __SUM_TSR_H__ a term is an abstract object representing some expression of tensors
virtual bool is_transform() const
Unifun_Term operator()(Term const &A) const
evaluate B=f(A)
void inv_idx(int order_A, int const *idx_A, int order_B, int const *idx_B, int order_C, int const *idx_C, int *order_tot, int **idx_arr)
invert index map
univar_function(univar_function const &other)
untyped internal class for doubly-typed univariate function
univar_function(void(*f_)(char const *, char *), bool is_dist)
virtual int64_t mem_fp()
returns the number of bytes of buffer space needed
performs replication along a dimension, generates 2.5D algs
virtual void acc_f(char const *a, char *b, CTF_int::algstrct const *sr_B) const
compute b = b+f(a)
virtual bool is_accumulator() const
univar_function const * func
univar_function(void(*f_)(char const *, char *))
void(* f)(char const *, char *)
virtual void add(char const *a, char const *b, char *c) const
c = a+b
int el_size
size of each element of algstrct in bytes
int cdealloc(void *ptr)
free abstraction
algstrct (algebraic structure) defines the elementwise operations computed in each tensor contraction...
virtual ~univar_function()
class for execution distributed summation of tensors
virtual void apply_f(char const *a, char *b) const
apply function f to value stored at a