Cyclops Tensor Framework
parallel arithmetic on multidimensional arrays
sym_seq_scl.h
Go to the documentation of this file.
1 #ifndef __SYM_SEQ_SCL_H__
2 #define __SYM_SEQ_SCL_H__
3 
4 #include "../tensor/algstrct.h"
5 #include "../interface/term.h"
6 
7 namespace CTF_int {
8 
12  class endomorphism {
13  public:
19  virtual void apply_f(char * a) const { assert(0); }
20 
25  void operator()(Term const & A) const;
26 
27  virtual ~endomorphism(){}
28  };
29 
33  int sym_seq_scl_cust(char const * alpha,
34  char * A,
35  algstrct const * sr_A,
36  int const order_A,
37  int const * edge_len_A,
38  int const * sym_A,
39  int const * idx_map_A,
40  endomorphism const * func);
44  int sym_seq_scl_ref(char const * alpha,
45  char * A,
46  algstrct const * sr_A,
47  int order_A,
48  int const * edge_len_A,
49  int const * sym_A,
50  int const * idx_map_A);
58  void inv_idx(int const order_A,
59  int const * idx_A,
60  int * order_tot,
61  int ** idx_arr);
62 }
63 #endif
a term is an abstract object representing some expression of tensors
Definition: term.h:33
untyped internal class for singly-typed single variable function (Endomorphism)
Definition: sym_seq_scl.h:12
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
Definition: ctr_tsr.cxx:592
virtual void apply_f(char *a) const
apply function f to value stored at a
Definition: sym_seq_scl.h:19
virtual ~endomorphism()
Definition: sym_seq_scl.h:27
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
Definition: sym_seq_scl.cxx:40
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...
Definition: algstrct.h:34
void operator()(Term const &A) const
apply f to A
Definition: sym_seq_scl.cxx:12