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