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