1 //------------------------------------------------------------------------------
2 // GxB_Descriptor_get: get a field in a descriptor
3 //------------------------------------------------------------------------------
4 
5 // SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2021, All Rights Reserved.
6 // SPDX-License-Identifier: Apache-2.0
7 
8 //------------------------------------------------------------------------------
9 
10 // Use GxB_Desc_get instead; this is kept for backward compatibility.
11 
12 #include "GB.h"
13 
GxB_Descriptor_get(GrB_Desc_Value * val,GrB_Descriptor desc,GrB_Desc_Field field)14 GrB_Info GxB_Descriptor_get     // get a parameter from a descriptor
15 (
16     GrB_Desc_Value *val,        // value of the parameter
17     GrB_Descriptor desc,        // descriptor to query; NULL is ok
18     GrB_Desc_Field field        // parameter to query
19 )
20 {
21 
22     //--------------------------------------------------------------------------
23     // check inputs
24     //--------------------------------------------------------------------------
25 
26     GB_WHERE1 ("GxB_Descriptor_get (&value, desc, field)") ;
27     GB_RETURN_IF_NULL (val) ;
28     GB_RETURN_IF_FAULTY (desc) ;
29 
30     //--------------------------------------------------------------------------
31     // get the parameter
32     //--------------------------------------------------------------------------
33 
34     switch (field)
35     {
36         case GrB_OUTP :
37 
38             (*val) = (desc == NULL) ? GxB_DEFAULT : desc->out  ; break ;
39 
40         case GrB_MASK :
41 
42             (*val) = (desc == NULL) ? GxB_DEFAULT : desc->mask ; break ;
43 
44         case GrB_INP0 :
45 
46             (*val) = (desc == NULL) ? GxB_DEFAULT : desc->in0  ; break ;
47 
48         case GrB_INP1 :
49 
50             (*val) = (desc == NULL) ? GxB_DEFAULT : desc->in1  ; break ;
51 
52         case GxB_AxB_METHOD :
53 
54             (*val) = (desc == NULL) ? GxB_DEFAULT : desc->axb  ; break;
55 
56         default :
57 
58             return (GrB_INVALID_VALUE) ;
59     }
60 
61     return (GrB_SUCCESS) ;
62 }
63 
64