1 //------------------------------------------------------------------------------
2 // gbbinopinfo : print a GraphBLAS binary op (for illustration only)
3 //------------------------------------------------------------------------------
4
5 // SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2021, All Rights Reserved.
6 // SPDX-License-Identifier: GPL-3.0-or-later
7
8 //------------------------------------------------------------------------------
9
10 // Usage:
11
12 // gbbinopinfo (binop)
13 // gbbinopinfo (binop, type)
14
15 #include "gb_matlab.h"
16
17 #define USAGE "usage: GrB.binopinfo (binop) or GrB.binopinfo (binop,type)"
18
mexFunction(int nargout,mxArray * pargout[],int nargin,const mxArray * pargin[])19 void mexFunction
20 (
21 int nargout,
22 mxArray *pargout [ ],
23 int nargin,
24 const mxArray *pargin [ ]
25 )
26 {
27
28 //--------------------------------------------------------------------------
29 // check inputs
30 //--------------------------------------------------------------------------
31
32 gb_usage (nargin >= 1 && nargin <= 2 && nargout == 0, USAGE) ;
33
34 //--------------------------------------------------------------------------
35 // construct the GraphBLAS binary operator and print it
36 //--------------------------------------------------------------------------
37
38 #define LEN 256
39 char opstring [LEN+2] ;
40 gb_mxstring_to_string (opstring, LEN, pargin [0], "binary operator") ;
41
42 GrB_Type type = NULL ;
43 if (nargin > 1)
44 {
45 type = gb_mxstring_to_type (pargin [1]) ;
46 CHECK_ERROR (type == NULL, "unknown type") ;
47 }
48
49 GrB_BinaryOp op = gb_mxstring_to_binop (pargin [0], type, type) ;
50 OK (GxB_BinaryOp_fprint (op, opstring, GxB_COMPLETE, NULL)) ;
51 GB_WRAPUP ;
52 }
53
54