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