1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
|
//------------------------------------------------------------------------------
// GB_debugify_mxm: dump the definitions for mxm to /tmp/GB_mxm_*.h file
//------------------------------------------------------------------------------
// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2021, All Rights Reserved.
// SPDX-License-Identifier: Apache-2.0
//------------------------------------------------------------------------------
#include "GB.h"
#include "GB_stringify.h"
void GB_debugify_mxm
(
// C matrix:
bool C_iso, // if true, operator is ignored
int C_sparsity, // sparse, hyper, bitmap, or full
GrB_Type ctype, // C=((ctype) T) is the final typecast
// M matrix:
GrB_Matrix M,
bool Mask_struct,
bool Mask_comp,
// semiring:
GrB_Semiring semiring,
bool flipxy,
// A and B matrices:
GrB_Matrix A,
GrB_Matrix B
)
{
uint64_t scode ;
GrB_Type atype = A->type ;
GrB_Type btype = B->type ;
// enumify the mxm problem
GB_enumify_mxm (&scode, C_iso, C_sparsity, ctype,
M, Mask_struct, Mask_comp, semiring, flipxy, A, B) ;
// namify the mxm problem
char mxm_name [256 + 8*GxB_MAX_NAME_LEN] ;
GB_namify_problem (mxm_name, scode,
semiring->add->op->name,
semiring->multiply->name,
semiring->multiply->xtype->name,
semiring->multiply->ytype->name,
semiring->multiply->ztype->name,
atype->name,
btype->name,
ctype->name) ;
// construct the filename and create the file
char filename [512 + 8*GxB_MAX_NAME_LEN] ;
sprintf (filename, "/tmp/GB_mxm_%s.h", mxm_name);
FILE *fp = fopen (filename, "w") ;
// macrofy the mxm problem
GB_macrofy_mxm (fp, scode, semiring, ctype, atype, btype) ;
fclose (fp) ;
}
|