1 //------------------------------------------------------------------------------ 2 // GB_ops.h: built-in unary and binary operators 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 #ifndef GB_OPS_H 11 #define GB_OPS_H 12 13 #define GB_FUNC_T(op,xtype) GB (GB_EVAL4 (_func_, op, _, xtype)) 14 #define GB_FUNC(op) GB_FUNC_T (op, GB_XTYPE) 15 16 #define GB_TYPE bool 17 #define GB_XTYPE BOOL 18 #define GB_BITS 1 19 #define GB_REAL 20 #define GB_BOOLEAN 21 #include "GB_ops_template.h" 22 23 #define GB_TYPE int8_t 24 #define GB_XTYPE INT8 25 #define GB_BITS 8 26 #define GB_REAL 27 #define GB_SIGNED_INT 28 #include "GB_ops_template.h" 29 30 #define GB_TYPE int16_t 31 #define GB_XTYPE INT16 32 #define GB_BITS 16 33 #define GB_REAL 34 #define GB_SIGNED_INT 35 #include "GB_ops_template.h" 36 37 #define GB_TYPE int32_t 38 #define GB_XTYPE INT32 39 #define GB_BITS 32 40 #define GB_REAL 41 #define GB_SIGNED_INT 42 #include "GB_ops_template.h" 43 44 #define GB_TYPE int64_t 45 #define GB_XTYPE INT64 46 #define GB_BITS 64 47 #define GB_REAL 48 #define GB_SIGNED_INT 49 #include "GB_ops_template.h" 50 51 #define GB_TYPE uint8_t 52 #define GB_XTYPE UINT8 53 #define GB_BITS 8 54 #define GB_REAL 55 #define GB_UNSIGNED_INT 56 #include "GB_ops_template.h" 57 58 #define GB_TYPE uint16_t 59 #define GB_XTYPE UINT16 60 #define GB_BITS 16 61 #define GB_REAL 62 #define GB_UNSIGNED_INT 63 #include "GB_ops_template.h" 64 65 #define GB_TYPE uint32_t 66 #define GB_XTYPE UINT32 67 #define GB_BITS 32 68 #define GB_REAL 69 #define GB_UNSIGNED_INT 70 #include "GB_ops_template.h" 71 72 #define GB_TYPE uint64_t 73 #define GB_XTYPE UINT64 74 #define GB_BITS 64 75 #define GB_REAL 76 #define GB_UNSIGNED_INT 77 #include "GB_ops_template.h" 78 79 #define GB_TYPE float 80 #define GB_XTYPE FP32 81 #define GB_BITS 32 82 #define GB_REAL 83 #define GB_FLOATING_POINT 84 #define GB_FLOAT 85 #include "GB_ops_template.h" 86 87 #define GB_TYPE double 88 #define GB_XTYPE FP64 89 #define GB_BITS 64 90 #define GB_REAL 91 #define GB_FLOATING_POINT 92 #define GB_DOUBLE 93 #include "GB_ops_template.h" 94 95 #define GB_TYPE GxB_FC32_t 96 #define GB_XTYPE FC32 97 #define GB_BITS 64 98 #define GB_COMPLEX 99 #define GB_FLOATING_POINT 100 #define GB_FLOAT_COMPLEX 101 #include "GB_ops_template.h" 102 103 #define GB_TYPE GxB_FC64_t 104 #define GB_XTYPE FC64 105 #define GB_BITS 128 106 #define GB_COMPLEX 107 #define GB_FLOATING_POINT 108 #define GB_DOUBLE_COMPLEX 109 #include "GB_ops_template.h" 110 111 #endif 112 113