1 #ifndef __CUST_TERM_H__ 2 #define __CUST_TERM_H__ 21 std::map<tensor*, tensor*>* remap=NULL);
25 Term *
clone(std::map<tensor*, tensor*>* remap = NULL)
const;
37 void get_inputs(std::set<CTF::Idx_Tensor*, tensor_name_less >* inputs_set)
const;
53 std::map<tensor*, tensor*>* remap=NULL);
57 Term *
clone(std::map<tensor*, tensor*>* remap = NULL)
const;
69 void get_inputs(std::set<CTF::Idx_Tensor*, tensor_name_less >* inputs_set)
const;
a term is an abstract object representing some expression of tensors
void execute(CTF::Idx_Tensor output) const
evalues the expression, which just scales by default
bivar_function const * func
int bivar_function(int n, World &dw)
CTF::World * where_am_i() const
figures out what world this term lives on
untyped internal class for doubly-typed univariate function
an instance of the CTF library (world) on a MPI communicator
untyped internal class for triply-typed bivariate function
univar_function const * func
void get_inputs(std::set< CTF::Idx_Tensor *, tensor_name_less > *inputs_set) const
appends the tensors this depends on to the input set
CTF::Idx_Tensor estimate_time(double &cost, std::vector< char > out_inds) const
estimates the cost the expression to produce an intermediate with all expression indices remaining ...
Term * clone(std::map< tensor *, tensor * > *remap=NULL) const
base classes must implement this copy function to retrieve pointer
int univar_function(int n, World &dw)
Unifun_Term(Term *A, univar_function const *func)
std::vector< char > get_uniq_inds() const
find list of unique indices that are involved in this term
a tensor with an index map associated with it (necessary for overloaded operators) ...