6 #include "../tensor/untyped_tensor.h" 45 virtual Term * clone(std::map<tensor*, tensor*>* remap = NULL)
const = 0;
66 virtual CTF::Idx_Tensor estimate_time(
double & cost, std::vector<char> out_inds)
const = 0;
80 virtual std::vector<char> get_uniq_inds()
const = 0;
85 virtual void get_inputs(std::set<CTF::Idx_Tensor*, tensor_name_less >* inputs_set)
const = 0;
90 void mult_scl(
char const * mulscl);
128 void operator=(
Term const & B);
131 void operator*=(
Term const & B);
133 void operator=(
double scl);
136 void operator<<(
double scl);
140 void operator*=(
double scl);
142 void operator=(int64_t
scl);
145 void operator*=(int64_t
scl);
147 void operator=(
int scl);
150 void operator*=(
int scl);
160 operator float()
const;
166 operator double()
const;
172 operator int64_t()
const;
178 operator int()
const;
197 std::map<tensor*, tensor*>* remap = NULL);
200 Term* clone(std::map<tensor*, tensor*>* remap = NULL)
const;
235 CTF::Idx_Tensor estimate_time(
double & cost, std::vector<char> out_inds)
const;
241 std::vector<char> get_uniq_inds()
const;
246 void get_inputs(std::set<CTF::Idx_Tensor*, tensor_name_less >* inputs_set)
const;
293 std::map<tensor*, tensor*>* remap = NULL);
296 Term * clone(std::map<tensor*, tensor*>* remap = NULL)
const;
308 std::vector<char> get_uniq_inds()
const;
313 void get_inputs(std::set<CTF::Idx_Tensor*, tensor_name_less >* inputs_set)
const;
336 CTF::Idx_Tensor estimate_time(
double & cost, std::vector<char> out_inds)
const;
a term is an abstract object representing some expression of tensors
an instance of the CTF library (world) on a MPI communicator
void operator+=(double &d, CTF_int::Term const &tsr)
std::vector< Term * > operands
comparison function for sets of tensor pointers This ensures the set iteration order is consistent ac...
void operator-=(double &d, CTF_int::Term const &tsr)
CTF_int::Contract_Term operator*(int64_t const &i, CTF_int::Term const &tsr)
algstrct (algebraic structure) defines the elementwise operations computed in each tensor contraction...
An experession representing a contraction of a set of tensors contained in operands.
a tensor with an index map associated with it (necessary for overloaded operators) ...
std::vector< Term * > operands