3 #ifndef __SPCTR_TSR_H__     4 #define __SPCTR_TSR_H__    29       virtual double est_time_fp(
int nlyr, 
double nnz_frac_A, 
double nnz_frac_B, 
double nnz_frac_C){ 
return 0.0; }
    39       virtual double est_time_rec(
int nlyr, 
double nnz_frac_A, 
double nnz_frac_B, 
double nnz_frac_C){ 
return 0.0; }
    45       virtual int64_t 
spmem_rec(
double nnz_frac_A, 
double nnz_frac_B, 
double nnz_frac_C){ 
return 0; };
    48       void run(
char * A, 
char * B, 
char * C) { printf(
"CTF ERROR: PROVIDE SPARSITY ARGS TO RUN\n"); assert(0); };
    49       virtual void run(
char * A, 
int nblk_A, int64_t 
const * size_blk_A,
    50                        char * B, 
int nblk_B, int64_t 
const * size_blk_B,
    51                        char * C, 
int nblk_C, int64_t * size_blk_C,
    84       void run(
char * A, 
int nblk_A, int64_t 
const * size_blk_A,
    85                char * B, 
int nblk_B, int64_t 
const * size_blk_B,
    86                char * C, 
int nblk_C, int64_t * size_blk_C,
    91       double est_fp(
double nnz_frac_A, 
double nnz_frac_B, 
double nnz_frac_C);
    92       int64_t est_spmem_rec(
double nnz_frac_A, 
double nnz_frac_B, 
double nnz_frac_C);
    93       uint64_t est_membw(
double nnz_frac_A, 
double nnz_frac_B, 
double nnz_frac_C);
    94       double est_time_fp(
int nlyr, 
double nnz_frac_A, 
double nnz_frac_B, 
double nnz_frac_C);
    95       double est_time_rec(
int nlyr, 
double nnz_frac_A, 
double nnz_frac_B, 
double nnz_frac_C);
   109                     iparam const *      inner_params,
   110                     int *               virt_blk_len_A,
   111                     int *               virt_blk_len_B,
   112                     int *               virt_blk_len_C,
   137       void run(
char * A, 
int nblk_A, int64_t 
const * size_blk_A,
   138                char * B, 
int nblk_B, int64_t 
const * size_blk_B,
   139                char * C, 
int nblk_C, int64_t * size_blk_C,
   142       int64_t 
spmem_rec(
double nnz_frac_A, 
double nnz_frac_B, 
double nnz_frac_C);
   144       double est_time_rec(
int nlyr, 
double nnz_frac_A, 
double nnz_frac_B, 
double nnz_frac_C);
   175       void run(
char * A, 
int nblk_A, int64_t 
const * size_blk_A,
   176                char * B, 
int nblk_B, int64_t 
const * size_blk_B,
   177                char * C, 
int nblk_C, int64_t * size_blk_C,
   180       int64_t spmem_fp(
double nnz_frac_A, 
double nnz_frac_B, 
double nnz_frac_C);
   181       int64_t 
spmem_rec(
double nnz_frac_A, 
double nnz_frac_B, 
double nnz_frac_C);
   184       double est_time_fp(
int nlyr, 
double nnz_frac_A, 
double nnz_frac_B, 
double nnz_frac_C);
   185       double est_time_rec(
int nlyr, 
double nnz_frac_A, 
double nnz_frac_B, 
double nnz_frac_C);
 bivar_function const * func
virtual int64_t spmem_rec(double nnz_frac_A, double nnz_frac_B, double nnz_frac_C)
returns the number of bytes need by each processor in this kernel and its recursive calls ...
virtual void run(char *A, int nblk_A, int64_t const *size_blk_A, char *B, int nblk_B, int64_t const *size_blk_B, char *C, int nblk_C, int64_t *size_blk_C, char *&new_C)
virtual double est_time_rec(int nlyr, double nnz_frac_A, double nnz_frac_B, double nnz_frac_C)
returns the execution time this kernel and its recursive calls are estimated to take ...
untyped internal class for triply-typed bivariate function 
double est_time_fp(int nlyr)
class for execution distributed contraction of tensors 
int cdealloc(void *ptr)
free abstraction 
virtual double est_time_fp(int nlyr, double nnz_frac_A, double nnz_frac_B, double nnz_frac_C)
returns the execution time the local part this kernel is estimated to take 
double est_time_rec(int nlyr)
void run(char *A, char *B, char *C)