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.