1 //------------------------------------------------------------------------------
2 // gbburble: get/set the burble setting for diagnostic output
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 // b = gbburble ;
13 // b = gbburble (b) ;
14
15 #include "gb_matlab.h"
16
17 #define USAGE "usage: b = GrB.burble ; or GrB.burble (b)"
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 && nargout <= 1, USAGE) ;
33
34 //--------------------------------------------------------------------------
35 // set the burble, if requested
36 //--------------------------------------------------------------------------
37
38 bool b ;
39
40 if (nargin > 0)
41 {
42 // set the burble
43 if (gb_mxarray_is_scalar (pargin [0]))
44 {
45 // argument is a numeric scalar
46 b = (bool) mxGetScalar (pargin [0]) ;
47 }
48 else if (mxIsLogicalScalar (pargin [0]))
49 {
50 // argument is a logical scalar
51 b = (bool) mxIsLogicalScalarTrue (pargin [0]) ;
52 }
53 else
54 {
55 ERROR ("input must be a scalar") ;
56 }
57 OK (GxB_Global_Option_set (GxB_BURBLE, b)) ;
58 }
59
60 //--------------------------------------------------------------------------
61 // return the burble
62 //--------------------------------------------------------------------------
63
64 OK (GxB_Global_Option_get (GxB_BURBLE, &b)) ;
65 pargout [0] = mxCreateDoubleScalar (b) ;
66 GB_WRAPUP ;
67 }
68
69