|
Cyclops Tensor Framework
parallel arithmetic on multidimensional arrays
|
untyped internal class for triply-typed bivariate function More...
#include <ctr_comm.h>

Public Member Functions | |
| virtual void | apply_f (char const *a, char const *b, char *c) const =0 |
| apply function f to values stored at a and b More... | |
| virtual void | acc_f (char const *a, char const *b, char *c, CTF_int::algstrct const *sr_C) const =0 |
| compute c = c+f(a,b) More... | |
| void | operator() (Term const &A, Term const &B, Term const &C) const |
| evaluate C+=f(A,B) or f(A,B,C) if transform More... | |
| Bifun_Term | operator() (Term const &A, Term const &B) const |
| evaluate f(A,B) More... | |
| bivar_function (bool is_comm=false, bool is_left_dist=false, bool is_right_dist=false) | |
| constructor sets function properties, pessimistic defaults More... | |
| virtual | ~bivar_function () |
| virtual bool | is_accumulator () const |
| virtual void | cgemm (char tA, char tB, int m, int n, int k, char const *A, char const *B, char *C) const |
| virtual void | coffload_gemm (char tA, char tB, int m, int n, int k, char const *A, char const *B, char *C) const |
| virtual void | ccoomm (int m, int n, int k, char const *A, int const *rows_A, int const *cols_A, int64_t nnz_A, char const *B, char *C) const |
| virtual void | ccsrmm (int m, int n, int k, char const *A, int const *JA, int const *IA, int64_t nnz_A, char const *B, char *C, algstrct const *sr_C) const |
| virtual void | ccsrmultd (int m, int n, int k, char const *A, int const *JA, int const *IA, int nnz_A, char const *B, int const *JB, int const *IB, int nnz_B, char *C, algstrct const *sr_C) const |
| virtual void | ccsrmultcsr (int m, int n, int k, char const *A, int const *JA, int const *IA, int nnz_A, char const *B, int const *JB, int const *IB, int nnz_B, char *&C_CSR, algstrct const *sr_C) const |
| virtual void | coffload_csrmm (int m, int n, int k, char const *all_data, char const *B, char *C) const |
Data Fields | |
| bool | has_kernel |
| bool | has_off_gemm |
| bool | commutative |
| bool | left_distributive |
| bool | right_distributive |
untyped internal class for triply-typed bivariate function
Definition at line 16 of file ctr_comm.h.
|
inline |
constructor sets function properties, pessimistic defaults
| [in] | is_comm | f(a,b)=f(b,a)? |
| [in] | is_left_dist | f(a_i,b)=f( a_i,b)? |
| [in] | is_right_dist | f(a,b_i)=f(a, b_i)? |
Definition at line 64 of file ctr_comm.h.
|
inlinevirtual |
Definition at line 74 of file ctr_comm.h.
|
pure virtual |
compute c = c+f(a,b)
| [in] | a | pointer to operand that will be cast to dtype |
| [in] | b | pointer to operand that will be cast to dtype |
| [in,out] | c | result c+f(*a,b) of applying f on value of (different type) on a |
| [in] | sr_C | algebraic structure for b, needed to do add |
Implemented in CTF::Bivar_Transform< dtype_A, dtype_B, dtype_C >, and CTF::Bivar_Function< dtype_A, dtype_B, dtype_C >.
Referenced by CTF_int::sym_seq_ctr_cust().
|
pure virtual |
apply function f to values stored at a and b
| [in] | a | pointer to first operand that will be cast to type by extending class |
| [in] | b | pointer to second operand that will be cast to type by extending class |
| [in,out] | c | result: c=&f(*a,*b) |
Implemented in CTF::Bivar_Transform< dtype_A, dtype_B, dtype_C >, and CTF::Bivar_Function< dtype_A, dtype_B, dtype_C >.
|
inlinevirtual |
Reimplemented in CTF::Bivar_Kernel< dtype_A, dtype_B, dtype_C, f, g >.
Definition at line 96 of file ctr_comm.h.
References ccsrmm().
Referenced by CTF_int::COO_Matrix::coomm().
|
inlinevirtual |
Reimplemented in CTF::Bivar_Kernel< dtype_A, dtype_B, dtype_C, f, g >, and CTF::Bivar_Function< dtype_A, dtype_B, dtype_C >.
Definition at line 108 of file ctr_comm.h.
References ccsrmultd().
Referenced by ccoomm(), and CTF_int::CSR_Matrix::csrmm().
|
inlinevirtual |
Reimplemented in CTF::Bivar_Kernel< dtype_A, dtype_B, dtype_C, f, g >, and CTF::Bivar_Function< dtype_A, dtype_B, dtype_C >.
Definition at line 135 of file ctr_comm.h.
Referenced by ccsrmultd(), and CTF_int::CSR_Matrix::csrmultcsr().
|
inlinevirtual |
Reimplemented in CTF::Bivar_Kernel< dtype_A, dtype_B, dtype_C, f, g >, and CTF::Bivar_Function< dtype_A, dtype_B, dtype_C >.
Definition at line 120 of file ctr_comm.h.
References ccsrmultcsr().
Referenced by ccsrmm(), and CTF_int::CSR_Matrix::csrmultd().
|
inlinevirtual |
Reimplemented in CTF::Bivar_Kernel< dtype_A, dtype_B, dtype_C, f, g >.
Definition at line 78 of file ctr_comm.h.
Referenced by CTF_int::sym_seq_ctr_inr().
|
inlinevirtual |
Reimplemented in CTF::Bivar_Kernel< dtype_A, dtype_B, dtype_C, f, g >.
Definition at line 150 of file ctr_comm.h.
Referenced by CTF_int::CSR_Matrix::csrmm().
|
inlinevirtual |
Reimplemented in CTF::Bivar_Kernel< dtype_A, dtype_B, dtype_C, f, g >.
Definition at line 87 of file ctr_comm.h.
Referenced by CTF_int::sym_seq_ctr_inr().
|
inlinevirtual |
Reimplemented in CTF::Bivar_Transform< dtype_A, dtype_B, dtype_C >.
Definition at line 76 of file ctr_comm.h.
evaluate C+=f(A,B) or f(A,B,C) if transform
| [in] | A | operand tensor with pre-defined indices |
| [in] | B | operand tensor with pre-defined indices |
| [in] | C | output tensor with pre-defined indices |
Definition at line 15 of file ctr_comm.cxx.
References CTF_int::Term::clone(), CTF_int::Term::execute(), CTF_int::Bifun_Term::execute(), and CTF_int::Term::get_uniq_inds().
| Bifun_Term CTF_int::bivar_function::operator() | ( | Term const & | A, |
| Term const & | B | ||
| ) | const |
evaluate f(A,B)
| [in] | A | operand tensor with pre-defined indices |
| [in] | B | operand tensor with pre-defined indices |
Definition at line 11 of file ctr_comm.cxx.
References CTF_int::Term::clone().
| bool CTF_int::bivar_function::commutative |
Definition at line 20 of file ctr_comm.h.
| bool CTF_int::bivar_function::has_kernel |
Definition at line 18 of file ctr_comm.h.
| bool CTF_int::bivar_function::has_off_gemm |
Definition at line 19 of file ctr_comm.h.
Referenced by CTF_int::CSR_Matrix::csrmm(), CTF_int::CSR_Matrix::csrmultcsr(), and CTF_int::CSR_Matrix::csrmultd().
| bool CTF_int::bivar_function::left_distributive |
Definition at line 21 of file ctr_comm.h.
| bool CTF_int::bivar_function::right_distributive |
Definition at line 22 of file ctr_comm.h.