1 //------------------------------------------------------------------------------
2 // GxB_Scalar_extractElement: extract a single entry from a GxB_Scalar
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 // Extract a single entry, x = s, typecasting from the type of s to the type of
11 // x, as needed.
12 
13 // Returns GrB_SUCCESS if s is present, and sets x to its value.
14 // Returns GrB_NO_VALUE if s does not have an entry, and x is unmodified.
15 
16 #include "GB.h"
17 
18 #define GB_FREE_ALL ;
19 #define GB_WHERE_STRING "GxB_Scalar_extractElement (&x, s)"
20 
21 #define GB_EXTRACT_ELEMENT GxB_Scalar_extractElement_BOOL
22 #define GB_XTYPE bool
23 #define GB_XCODE GB_BOOL_code
24 #include "GB_Scalar_extractElement.c"
25 
26 #define GB_EXTRACT_ELEMENT GxB_Scalar_extractElement_INT8
27 #define GB_XTYPE int8_t
28 #define GB_XCODE GB_INT8_code
29 #include "GB_Scalar_extractElement.c"
30 
31 #define GB_EXTRACT_ELEMENT GxB_Scalar_extractElement_INT16
32 #define GB_XTYPE int16_t
33 #define GB_XCODE GB_INT16_code
34 #include "GB_Scalar_extractElement.c"
35 
36 #define GB_EXTRACT_ELEMENT GxB_Scalar_extractElement_INT32
37 #define GB_XTYPE int32_t
38 #define GB_XCODE GB_INT32_code
39 #include "GB_Scalar_extractElement.c"
40 
41 #define GB_EXTRACT_ELEMENT GxB_Scalar_extractElement_INT64
42 #define GB_XTYPE int64_t
43 #define GB_XCODE GB_INT64_code
44 #include "GB_Scalar_extractElement.c"
45 
46 #define GB_EXTRACT_ELEMENT GxB_Scalar_extractElement_UINT8
47 #define GB_XTYPE uint8_t
48 #define GB_XCODE GB_UINT8_code
49 #include "GB_Scalar_extractElement.c"
50 
51 #define GB_EXTRACT_ELEMENT GxB_Scalar_extractElement_UINT16
52 #define GB_XTYPE uint16_t
53 #define GB_XCODE GB_UINT16_code
54 #include "GB_Scalar_extractElement.c"
55 
56 #define GB_EXTRACT_ELEMENT GxB_Scalar_extractElement_UINT32
57 #define GB_XTYPE uint32_t
58 #define GB_XCODE GB_UINT32_code
59 #include "GB_Scalar_extractElement.c"
60 
61 #define GB_EXTRACT_ELEMENT GxB_Scalar_extractElement_UINT64
62 #define GB_XTYPE uint64_t
63 #define GB_XCODE GB_UINT64_code
64 #include "GB_Scalar_extractElement.c"
65 
66 #define GB_EXTRACT_ELEMENT GxB_Scalar_extractElement_FP32
67 #define GB_XTYPE float
68 #define GB_XCODE GB_FP32_code
69 #include "GB_Scalar_extractElement.c"
70 
71 #define GB_EXTRACT_ELEMENT GxB_Scalar_extractElement_FP64
72 #define GB_XTYPE double
73 #define GB_XCODE GB_FP64_code
74 #include "GB_Scalar_extractElement.c"
75 
76 #define GB_EXTRACT_ELEMENT GxB_Scalar_extractElement_FC32
77 #define GB_XTYPE GxB_FC32_t
78 #define GB_XCODE GB_FC32_code
79 #include "GB_Scalar_extractElement.c"
80 
81 #define GB_EXTRACT_ELEMENT GxB_Scalar_extractElement_FC64
82 #define GB_XTYPE GxB_FC64_t
83 #define GB_XCODE GB_FC64_code
84 #include "GB_Scalar_extractElement.c"
85 
86 #define GB_UDT_EXTRACT
87 #define GB_EXTRACT_ELEMENT GxB_Scalar_extractElement_UDT
88 #define GB_XTYPE void
89 #define GB_XCODE GB_UDT_code
90 #include "GB_Scalar_extractElement.c"
91 
92