Cyclops Tensor Framework
parallel arithmetic on multidimensional arrays
|
untyped internal class for doubly-typed univariate function More...
#include <sum_tsr.h>
Public Member Functions | |
virtual void | apply_f (char const *a, char *b) const |
apply function f to value stored at a More... | |
virtual void | acc_f (char const *a, char *b, CTF_int::algstrct const *sr_B) const |
compute b = b+f(a) More... | |
virtual bool | is_transform () const |
univar_function (void(*f_)(char const *, char *)) | |
univar_function (void(*f_)(char const *, char *), bool is_dist) | |
univar_function () | |
univar_function (univar_function const &other) | |
Unifun_Term | operator() (Term const &A) const |
evaluate B=f(A) More... | |
void | operator() (Term const &A, Term const &B) const |
evaluate B+=f(A) or f(A,B) if transform More... | |
virtual | ~univar_function () |
virtual bool | is_accumulator () const |
Data Fields | |
void(* | f )(char const *, char *) |
bool | is_distributive = false |
untyped internal class for doubly-typed univariate function
|
inline |
|
inline |
|
inline |
Definition at line 45 of file sum_tsr.h.
References f, is_distributive, and operator()().
|
inlinevirtual |
|
inlinevirtual |
compute b = b+f(a)
[in] | a | pointer to operand that will be cast to dtype |
[in,out] | b | result &f(*a) of applying f on value of (different type) on a |
[in] | sr_B | algebraic structure for b, needed to do add |
Reimplemented in CTF::Univar_Transform< dtype_A, dtype_B >, and CTF::Univar_Function< dtype_A, dtype_B >.
Definition at line 33 of file sum_tsr.h.
References CTF_int::algstrct::add(), CTF_int::accumulatable::el_size, and f.
Referenced by CTF_int::spA_dnB_seq_sum(), CTF_int::spspsum(), and CTF_int::sym_seq_sum_cust().
|
inlinevirtual |
apply function f to value stored at a
[in] | a | pointer to operand that will be cast to type by extending class |
[in,out] | b | result &f(*a) of applying f on value of (different type) on a |
Reimplemented in CTF::Univar_Transform< dtype_A, dtype_B >, and CTF::Univar_Function< dtype_A, dtype_B >.
Definition at line 25 of file sum_tsr.h.
References f.
Referenced by CTF_int::spspsum().
|
inlinevirtual |
Reimplemented in CTF::Univar_Transform< dtype_A, dtype_B >.
Definition at line 63 of file sum_tsr.h.
Referenced by CTF_int::spspsum().
|
inlinevirtual |
Unifun_Term CTF_int::univar_function::operator() | ( | Term const & | A | ) | const |
evaluate B=f(A)
[in] | A | operand tensor with pre-defined indices |
Definition at line 10 of file sum_tsr.cxx.
References CTF_int::Term::clone().
Referenced by univar_function().
evaluate B+=f(A) or f(A,B) if transform
[in] | A | operand tensor with pre-defined indices |
[in] | B | output tensor with pre-defined indices |
Definition at line 14 of file sum_tsr.cxx.
References CTF_int::Term::clone(), CTF_int::Unifun_Term::execute(), CTF_int::Term::execute(), and CTF_int::Term::get_uniq_inds().
void(* CTF_int::univar_function::f) (char const *, char *) |
Definition at line 16 of file sum_tsr.h.
Referenced by acc_f(), apply_f(), and univar_function().
bool CTF_int::univar_function::is_distributive = false |
Definition at line 18 of file sum_tsr.h.
Referenced by univar_function().