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