Cyclops Tensor Framework
parallel arithmetic on multidimensional arrays
|
Group is a Monoid with operator '-' defined special case (parent) of a ring. More...
#include <group.h>
Public Member Functions | |
Group (Group const &other) | |
virtual CTF_int::algstrct * | clone () const |
''copy constructor'' More... | |
Group () | |
Group (dtype taddid_, dtype(*fadd_)(dtype a, dtype b), MPI_Op addmop_) | |
void | safeaddinv (char const *a, char *&b) const |
b = -a, with checks for NULL and alloc as necessary More... | |
void | addinv (char const *a, char *b) const |
b = -a More... | |
Public Member Functions inherited from CTF::Monoid< dtype, is_ord > | |
Monoid (Monoid const &other) | |
Monoid () | |
Monoid (dtype taddid_) | |
Monoid (dtype taddid_, dtype(*fadd_)(dtype a, dtype b), MPI_Op addmop_) | |
void | add (char const *a, char const *b, char *c) const |
c = a+b More... | |
char const * | addid () const |
MPI datatype for pairs. More... | |
MPI_Op | addmop () const |
MPI addition operation for reductions. More... | |
void | init (int64_t n, char *arr) const |
initialize n objects to zero More... | |
void | axpy (int n, char const *alpha, char const *X, int incX, char *Y, int incY) const |
Y["i"]+=alpha*X["i"];. More... | |
char * | csr_add (char *cA, char *cB) const |
adds CSR matrices A (stored in cA) and B (stored in cB) to create matric C (pointer to all_data returned), C data allocated internally More... | |
template<> | |
char * | csr_add (char *cA, char *cB) const |
adds CSR matrices A (stored in cA) and B (stored in cB) to create matric C (pointer to all_data returned), C data allocated internally More... | |
template<> | |
char * | csr_add (char *, char *) const |
adds CSR matrices A (stored in cA) and B (stored in cB) to create matric C (pointer to all_data returned), C data allocated internally More... | |
Public Member Functions inherited from CTF::Set< dtype, is_ord > | |
~Set () | |
Set (Set const &other) | |
int | pair_size () const |
gets pair size el_size plus the key size More... | |
int64_t | get_key (char const *a) const |
gets key from pair More... | |
char * | get_value (char *a) const |
gets pair to value from pair More... | |
char const * | get_const_value (char const *a) const |
bool | is_ordered () const |
Set () | |
void | set_abs_to_default () |
MPI_Datatype | mdtype () const |
MPI datatype. More... | |
void | min (char const *a, char const *b, char *c) const |
c = min(a,b) More... | |
void | max (char const *a, char const *b, char *c) const |
c = max(a,b) More... | |
void | min (char *c) const |
c = minimum possible value More... | |
void | max (char *c) const |
c = maximum possible value More... | |
void | cast_double (double d, char *c) const |
c = &d More... | |
void | cast_int (int64_t i, char *c) const |
c = &i More... | |
double | cast_to_double (char const *c) const |
return (double)*c More... | |
int64_t | cast_to_int (char const *c) const |
return (int64_t)*c More... | |
void | print (char const *a, FILE *fp=stdout) const |
prints the value More... | |
bool | isequal (char const *a, char const *b) const |
returns true if algstrct elements a and b are equal More... | |
void | coo_to_csr (int64_t nz, int nrow, char *csr_vs, int *csr_ja, int *csr_ia, char const *coo_vs, int const *coo_rs, int const *coo_cs) const |
converts coordinate sparse matrix layout to CSR layout More... | |
void | csr_to_coo (int64_t nz, int nrow, char const *csr_vs, int const *csr_ja, int const *csr_ia, char *coo_vs, int *coo_rs, int *coo_cs) const |
converts CSR sparse matrix layout to coordinate (COO) layout More... | |
char * | pair_alloc (int64_t n) const |
allocate space for n (int64_t,dtype) pairs, necessary for object types More... | |
char * | alloc (int64_t n) const |
allocate space for n items, necessary for object types More... | |
void | dealloc (char *ptr) const |
deallocate given pointer containing contiguous array of values More... | |
void | pair_dealloc (char *ptr) const |
deallocate given pointer containing contiguous array of pairs More... | |
void | sort (int64_t n, char *pairs) const |
sorts n sets of pairs using std::sort More... | |
void | copy (char *a, char const *b) const |
copies element b to element a More... | |
void | copy (char *a, char const *b, int64_t n) const |
copies n elements from array b to array a More... | |
void | copy_pair (char *a, char const *b) const |
copies pair b to element a More... | |
void | copy_pairs (char *a, char const *b, int64_t n) const |
copies n pair from array b to array a More... | |
void | set (char *a, char const *b, int64_t n) const |
sets n elements of array a to value b More... | |
void | set_pair (char *a, int64_t key, char const *b) const |
sets 1 elements of pair a to value and key More... | |
void | set_pairs (char *a, char const *b, int64_t n) const |
sets n elements of array of pairs a to value b More... | |
void | copy (int64_t n, char const *a, int inc_a, char *b, int inc_b) const |
copies n elements TO array b with increment inc_a FROM array a with increment inc_b More... | |
void | copy (int64_t m, int64_t n, char const *a, int64_t lda_a, char *b, int64_t lda_b) const |
copies m-by-n submatrix from a with lda_a to b with lda_b More... | |
void | init (int64_t n, char *arr) const |
initialize n objects to zero More... | |
virtual void | init_shell (int64_t n, char *arr) const |
initialize n objects to zero More... | |
template<> | |
void | print (char const *a, FILE *fp) const |
prints the value More... | |
template<> | |
void | print (char const *a, FILE *fp) const |
prints the value More... | |
template<> | |
void | print (char const *a, FILE *fp) const |
prints the value More... | |
template<> | |
void | print (char const *a, FILE *fp) const |
prints the value More... | |
template<> | |
void | print (char const *a, FILE *fp) const |
prints the value More... | |
template<> | |
void | print (char const *a, FILE *fp) const |
prints the value More... | |
template<> | |
void | print (char const *p, FILE *fp) const |
prints the value More... | |
template<> | |
void | copy (int64_t nn, char const *a, int inc_a, char *b, int inc_b) const |
copies n elements TO array b with increment inc_a FROM array a with increment inc_b More... | |
template<> | |
void | copy (int64_t nn, char const *a, int inc_a, char *b, int inc_b) const |
copies n elements TO array b with increment inc_a FROM array a with increment inc_b More... | |
template<> | |
void | copy (int64_t nn, char const *a, int inc_a, char *b, int inc_b) const |
copies n elements TO array b with increment inc_a FROM array a with increment inc_b More... | |
template<> | |
void | copy (int64_t nn, char const *a, int inc_a, char *b, int inc_b) const |
copies n elements TO array b with increment inc_a FROM array a with increment inc_b More... | |
template<> | |
void | cast_double (double d, char *c) const |
c = &d More... | |
template<> | |
void | cast_double (double d, char *c) const |
c = &d More... | |
template<> | |
void | cast_double (double d, char *c) const |
c = &d More... | |
template<> | |
void | cast_double (double d, char *c) const |
c = &d More... | |
template<> | |
void | cast_double (double d, char *c) const |
c = &d More... | |
template<> | |
void | cast_double (double d, char *c) const |
c = &d More... | |
template<> | |
void | cast_double (double d, char *c) const |
c = &d More... | |
template<> | |
void | cast_double (double d, char *c) const |
c = &d More... | |
template<> | |
void | cast_double (double d, char *c) const |
c = &d More... | |
template<> | |
void | cast_int (int64_t d, char *c) const |
c = &i More... | |
template<> | |
void | cast_int (int64_t d, char *c) const |
c = &i More... | |
template<> | |
void | cast_int (int64_t d, char *c) const |
c = &i More... | |
template<> | |
void | cast_int (int64_t d, char *c) const |
c = &i More... | |
template<> | |
void | cast_int (int64_t d, char *c) const |
c = &i More... | |
template<> | |
void | cast_int (int64_t d, char *c) const |
c = &i More... | |
template<> | |
void | cast_int (int64_t d, char *c) const |
c = &i More... | |
template<> | |
void | cast_int (int64_t d, char *c) const |
c = &i More... | |
template<> | |
void | cast_int (int64_t d, char *c) const |
c = &i More... | |
template<> | |
double | cast_to_double (char const *c) const |
return (double)*c More... | |
template<> | |
double | cast_to_double (char const *c) const |
return (double)*c More... | |
template<> | |
double | cast_to_double (char const *c) const |
return (double)*c More... | |
template<> | |
double | cast_to_double (char const *c) const |
return (double)*c More... | |
template<> | |
double | cast_to_double (char const *c) const |
return (double)*c More... | |
template<> | |
int64_t | cast_to_int (char const *c) const |
return (int64_t)*c More... | |
template<> | |
int64_t | cast_to_int (char const *c) const |
return (int64_t)*c More... | |
template<> | |
int64_t | cast_to_int (char const *c) const |
return (int64_t)*c More... | |
template<> | |
int64_t | cast_to_int (char const *c) const |
return (int64_t)*c More... | |
template<> | |
int64_t | cast_to_int (char const *c) const |
return (int64_t)*c More... | |
template<> | |
void | print (char const *a, FILE *fp) const |
prints the value More... | |
template<> | |
void | print (char const *a, FILE *fp) const |
prints the value More... | |
template<> | |
void | print (char const *a, FILE *fp) const |
prints the value More... | |
template<> | |
void | print (char const *a, FILE *fp) const |
prints the value More... | |
template<> | |
void | print (char const *a, FILE *fp) const |
prints the value More... | |
template<> | |
void | print (char const *a, FILE *fp) const |
prints the value More... | |
template<> | |
void | print (char const *a, FILE *fp) const |
prints the value More... | |
template<> | |
bool | isequal (char const *a, char const *b) const |
returns true if algstrct elements a and b are equal More... | |
template<> | |
bool | isequal (char const *a, char const *b) const |
returns true if algstrct elements a and b are equal More... | |
template<> | |
bool | isequal (char const *a, char const *b) const |
returns true if algstrct elements a and b are equal More... | |
template<> | |
bool | isequal (char const *a, char const *b) const |
returns true if algstrct elements a and b are equal More... | |
template<> | |
bool | isequal (char const *a, char const *b) const |
returns true if algstrct elements a and b are equal More... | |
template<> | |
bool | isequal (char const *a, char const *b) const |
returns true if algstrct elements a and b are equal More... | |
template<> | |
bool | isequal (char const *a, char const *b) const |
returns true if algstrct elements a and b are equal More... | |
template<> | |
bool | isequal (char const *a, char const *b) const |
returns true if algstrct elements a and b are equal More... | |
template<> | |
bool | isequal (char const *a, char const *b) const |
returns true if algstrct elements a and b are equal More... | |
Public Member Functions inherited from CTF_int::algstrct | |
algstrct () | |
default constructor More... | |
algstrct (int el_size) | |
constructor creates algstrct with all parameters More... | |
virtual | ~algstrct ()=0 |
destructor More... | |
virtual char const * | mulid () const |
identity element for multiplication i.e. 1 More... | |
virtual void | accum (char const *a, char *b) const |
b+=a More... | |
virtual bool | has_mul () const |
virtual void | mul (char const *a, char const *b, char *c) const |
c = a*b More... | |
virtual void | safemul (char const *a, char const *b, char *&c) const |
c = a*b, with NULL treated as mulid More... | |
virtual void | scal (int n, char const *alpha, char *X, int incX) const |
X["i"]=alpha*X["i"];. More... | |
virtual void | gemm (char tA, char tB, int m, int n, int k, char const *alpha, char const *A, char const *B, char const *beta, char *C) const |
beta*C["ij"]=alpha*A^tA["ik"]*B^tB["kj"]; More... | |
virtual void | gemm_batch (char tA, char tB, int l, int m, int n, int k, char const *alpha, char const *A, char const *B, char const *beta, char *C) const |
beta*C["ijl"]=alpha*A^tA["ikl"]*B^tB["kjl"]; More... | |
virtual void | offload_gemm (char tA, char tB, int m, int n, int k, char const *alpha, char const *A, char const *B, char const *beta, char *C) const |
virtual bool | is_offloadable () const |
virtual void | coomm (int m, int n, int k, char const *alpha, char const *A, int const *rows_A, int const *cols_A, int64_t nnz_A, char const *B, char const *beta, char *C, bivar_function const *func) const |
sparse version of gemm using coordinate format for A More... | |
virtual void | csrmm (int m, int n, int k, char const *alpha, char const *A, int const *JA, int const *IA, int64_t nnz_A, char const *B, char const *beta, char *C, bivar_function const *func) const |
sparse version of gemm using CSR format for A More... | |
virtual void | csrmultd (int m, int n, int k, char const *alpha, char const *A, int const *JA, int const *IA, int64_t nnz_A, char const *B, int const *JB, int const *IB, int64_t nnz_B, char const *beta, char *C) const |
sparse version of gemm using CSR format for A and B More... | |
virtual void | csrmultcsr (int m, int n, int k, char const *alpha, char const *A, int const *JA, int const *IA, int64_t nnz_A, char const *B, int const *JB, int const *IB, int64_t nnz_B, char const *beta, char *&C_CSR) const |
virtual char * | csr_reduce (char *cA, int root, MPI_Comm cm) const |
reduces CSR matrices stored in cA on each processor in cm and returns result on processor root More... | |
double | estimate_csr_red_time (int64_t msg_sz, CommData const *cdt) const |
void | acc (char *b, char const *beta, char const *a, char const *alpha) const |
compute b=beta*b + alpha*a More... | |
void | accmul (char *c, char const *a, char const *b, char const *alpha) const |
compute c=c + alpha*a*b More... | |
void | safecopy (char *&a, char const *b) const |
copies element b to element a, , with checks for NULL and alloc as necessary More... | |
virtual void | copy (int64_t m, int64_t n, char const *a, int64_t lda_a, char const *alpha, char *b, int64_t lda_b, char const *beta) const |
copies m-by-n submatrix from a with lda_a and scaling alpha to b with lda_b and scaling by 1 More... | |
Additional Inherited Members | |
Data Fields inherited from CTF::Monoid< dtype, is_ord > | |
dtype | taddid |
dtype(* | fadd )(dtype a, dtype b) |
MPI_Op | taddmop |
Data Fields inherited from CTF::Set< dtype, is_ord > | |
int | pair_sz |
bool | is_custom_mdtype |
MPI_Datatype | tmdtype |
Data Fields inherited from CTF_int::algstrct | |
bool | has_coo_ker |
whether there was a custom COO CSRMM kernel provided for this algebraic structure More... | |
void(* | abs )(char const *a, char *b) |
b = max(a,addinv(a)) More... | |
Data Fields inherited from CTF_int::accumulatable | |
int | el_size |
size of each element of algstrct in bytes More... | |
Group is a Monoid with operator '-' defined special case (parent) of a ring.
|
inline |
|
inline |
Definition at line 24 of file group.h.
References CTF_int::algstrct::abs.
|
inline |
Definition at line 28 of file group.h.
References CTF_int::algstrct::abs.
|
inlinevirtual |
b = -a
Reimplemented from CTF_int::algstrct.
Definition at line 48 of file group.h.
References ctf.core::dtype.
|
inlinevirtual |
''copy constructor''
Reimplemented from CTF::Monoid< dtype, is_ord >.
|
inlinevirtual |
b = -a, with checks for NULL and alloc as necessary
Reimplemented from CTF_int::algstrct.
Definition at line 36 of file group.h.
References ctf.core::dtype, and CTF_int::accumulatable::el_size.