| Cyclops Tensor Framework
    parallel arithmetic on multidimensional arrays | 
#include <fun_term.h>


| Public Member Functions | |
| Bifun_Term (Term *A, Term *B, bivar_function const *func) | |
| Bifun_Term (Bifun_Term const &other, std::map< tensor *, tensor * > *remap=NULL) | |
| ~Bifun_Term () | |
| Term * | clone (std::map< tensor *, tensor * > *remap=NULL) const | 
| base classes must implement this copy function to retrieve pointer  More... | |
| void | execute (CTF::Idx_Tensor output) const | 
| evalues the expression, which just scales by default  More... | |
| CTF::Idx_Tensor | execute (std::vector< char > out_inds) const | 
| evalues the expression to produce an intermediate with all expression indices remaining  More... | |
| 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  More... | |
| double | estimate_time (CTF::Idx_Tensor output) const | 
| estimates the cost of a contraction/sum/.. term  More... | |
| std::vector< char > | get_uniq_inds () const | 
| find list of unique indices that are involved in this term  More... | |
| void | get_inputs (std::set< CTF::Idx_Tensor *, tensor_name_less > *inputs_set) const | 
| appends the tensors this depends on to the input set  More... | |
| CTF::World * | where_am_i () const | 
| figures out what world this term lives on  More... | |
|  Public Member Functions inherited from CTF_int::Term | |
| Term (algstrct const *sr) | |
| virtual | ~Term () | 
| void | mult_scl (char const *mulscl) | 
| multiply scaling factor by mulscl  More... | |
| Contract_Term | operator* (Term const &A) const | 
| constructs a new term which multiplies by tensor A  More... | |
| Contract_Term | operator* (int64_t scl) const | 
| multiples by a constant  More... | |
| Contract_Term | operator* (double scl) const | 
| Sum_Term | operator+ (Term const &A) const | 
| constructs a new term by addition of two terms  More... | |
| Sum_Term | operator+ (double scl) const | 
| Sum_Term | operator+ (int64_t scl) const | 
| Sum_Term | operator- (Term const &A) const | 
| constructs a new term by subtracting term A  More... | |
| Sum_Term | operator- (double scl) const | 
| Sum_Term | operator- (int64_t scl) const | 
| Term & | operator- () | 
| void | operator= (CTF::Idx_Tensor const &B) | 
| A = B, compute any operations on operand B and set.  More... | |
| void | operator= (Term const &B) | 
| void | operator+= (Term const &B) | 
| void | operator-= (Term const &B) | 
| void | operator*= (Term const &B) | 
| void | operator= (double scl) | 
| void | operator+= (double scl) | 
| void | operator<< (CTF_int::Term const &B) | 
| void | operator<< (double scl) | 
| void | operator-= (double scl) | 
| void | operator*= (double scl) | 
| void | operator= (int64_t scl) | 
| void | operator+= (int64_t scl) | 
| void | operator-= (int64_t scl) | 
| void | operator*= (int64_t scl) | 
| void | operator= (int scl) | 
| void | operator+= (int scl) | 
| void | operator-= (int scl) | 
| void | operator*= (int scl) | 
| operator float () const | |
| cast to float (works only if tensor type is castable to float) allows a scalar output  More... | |
| operator double () const | |
| cast to double (works only if tensor type is castable to double) allows a scalar output  More... | |
| operator int64_t () const | |
| cast to int64_t (works only if tensor type is castable to int64_t) allows a scalar output  More... | |
| operator int () const | |
| cast to int64_t (works only if tensor type is castable to int64_t) allows a scalar output  More... | |
| Data Fields | |
| Term * | A | 
| Term * | B | 
| bivar_function const * | func | 
|  Data Fields inherited from CTF_int::Term | |
| char * | scale | 
| algstrct * | sr | 
Definition at line 42 of file fun_term.h.
| CTF_int::Bifun_Term::Bifun_Term | ( | Term * | A, | 
| Term * | B, | ||
| bivar_function const * | func | ||
| ) | 
| CTF_int::Bifun_Term::Bifun_Term | ( | Bifun_Term const & | other, | 
| std::map< tensor *, tensor * > * | remap = NULL | ||
| ) | 
Definition at line 87 of file fun_term.cxx.
References A, B, CTF_int::Term::clone(), func, CTF_int::algstrct::safecopy(), CTF_int::Term::scale, and CTF_int::Term::sr.
| CTF_int::Bifun_Term::~Bifun_Term | ( | ) | 
Definition at line 78 of file fun_term.cxx.
base classes must implement this copy function to retrieve pointer
Implements CTF_int::Term.
Definition at line 83 of file fun_term.cxx.
References Bifun_Term().
| 
 | virtual | 
estimates the cost the expression to produce an intermediate with all expression indices remaining
| [in,out] | cost | the cost of the operation | 
| [in] | out_inds | unique indices to not contract/sum away | 
Implements CTF_int::Term.
Definition at line 123 of file fun_term.cxx.
| 
 | virtual | 
estimates the cost of a contraction/sum/.. term
| [in] | output | tensor to write results into and its indices | 
Implements CTF_int::Term.
Definition at line 128 of file fun_term.cxx.
References A, B, CTF_int::Term::estimate_time(), CTF_int::contraction::estimate_time(), func, CTF_int::Term::get_uniq_inds(), CTF::Idx_Tensor::idx_map, CTF_int::algstrct::mulid(), CTF::Idx_Tensor::parent, CTF_int::Term::scale, and CTF_int::Term::sr.
| 
 | virtual | 
evalues the expression, which just scales by default
| [in,out] | output | tensor to write results into and its indices | 
Implements CTF_int::Term.
Definition at line 96 of file fun_term.cxx.
References A, ASSERT, B, CTF_int::Term::execute(), CTF_int::contraction::execute(), func, CTF_int::Term::get_uniq_inds(), CTF::Idx_Tensor::idx_map, CTF_int::algstrct::isequal(), CTF_int::algstrct::mulid(), CTF::Idx_Tensor::parent, CTF::World::rank, CTF_int::Term::scale, CTF_int::Term::sr, and CTF_int::tensor::wrld.
Referenced by CTF_int::bivar_function::operator()().
| 
 | virtual | 
evalues the expression to produce an intermediate with all expression indices remaining
| [in] | out_inds | unique indices to not contract/sum away | 
Implements CTF_int::Term.
Definition at line 117 of file fun_term.cxx.
| 
 | virtual | 
appends the tensors this depends on to the input set
Implements CTF_int::Term.
Definition at line 151 of file fun_term.cxx.
References A, B, and CTF_int::Term::get_inputs().
| 
 | virtual | 
find list of unique indices that are involved in this term
Implements CTF_int::Term.
Definition at line 137 of file fun_term.cxx.
References A, B, and CTF_int::Term::get_uniq_inds().
| 
 | virtual | 
figures out what world this term lives on
Implements CTF_int::Term.
Definition at line 156 of file fun_term.cxx.
References A, B, and CTF_int::Term::where_am_i().
| Term* CTF_int::Bifun_Term::A | 
Definition at line 44 of file fun_term.h.
Referenced by Bifun_Term(), estimate_time(), execute(), get_inputs(), get_uniq_inds(), where_am_i(), and ~Bifun_Term().
| Term* CTF_int::Bifun_Term::B | 
Definition at line 45 of file fun_term.h.
Referenced by Bifun_Term(), estimate_time(), execute(), get_inputs(), get_uniq_inds(), where_am_i(), and ~Bifun_Term().
| bivar_function const* CTF_int::Bifun_Term::func | 
Definition at line 46 of file fun_term.h.
Referenced by Bifun_Term(), estimate_time(), and execute().