1 #ifndef __SYM_SEQ_SCL_H__ 2 #define __SYM_SEQ_SCL_H__ 4 #include "../tensor/algstrct.h" 5 #include "../interface/term.h" 19 virtual void apply_f(
char *
a)
const { assert(0); }
37 int const * edge_len_A,
39 int const * idx_map_A,
48 int const * edge_len_A,
50 int const * idx_map_A);
a term is an abstract object representing some expression of tensors
untyped internal class for singly-typed single variable function (Endomorphism)
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
virtual void apply_f(char *a) const
apply function f to value stored at a
int sym_seq_scl_ref(char const *alpha, char *A, algstrct const *sr_A, int order_A, int const *edge_len_A, int const *sym_A, int const *idx_map_A)
performs symmetric scaling using algstrct const * sr_A
int sym_seq_scl_cust(char const *alpha, char *A, algstrct const *sr_A, int const order_A, int const *edge_len_A, int const *sym_A, int const *idx_map_A, endomorphism const *func)
performs symmetric scaling using custom func
algstrct (algebraic structure) defines the elementwise operations computed in each tensor contraction...
void operator()(Term const &A) const
apply f to A