File: GB_builtin.h

package info (click to toggle)
suitesparse 1%3A7.10.1%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 254,920 kB
  • sloc: ansic: 1,134,743; cpp: 46,133; makefile: 4,875; fortran: 2,087; java: 1,826; sh: 996; ruby: 725; python: 495; asm: 371; sed: 166; awk: 44
file content (130 lines) | stat: -rw-r--r-- 3,646 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
//------------------------------------------------------------------------------
// GB_builtin.h: built-in unary and binary operators
//------------------------------------------------------------------------------

// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2025, All Rights Reserved.
// SPDX-License-Identifier: Apache-2.0

//------------------------------------------------------------------------------

#ifdef __cplusplus
#error "not used for C++"
#endif

#ifndef GB_OPS_H
#define GB_OPS_H

//------------------------------------------------------------------------------
// define all built-in unary and binary operators
//------------------------------------------------------------------------------

// nonzombie function for generic case
inline void GB_nonzombie_func (bool *z, const void *x,
    int64_t i, uint64_t j, const void *y)
{
    (*z) = (i >= 0) ;    
}

#define GB_FUNC_T(op,xtype) GB (GB_EVAL4 (_func_, op, _, xtype))
#define GB_FUNC(op) GB_FUNC_T (op, GB_XTYPE)

#define GB_TYPE             bool
#define GB_XTYPE            BOOL
#define GB_X_NBITS          1
#define GB_REAL
#define GB_BOOLEAN
#include "builtin/factory/GB_builtin_template.h"

#define GB_TYPE             int8_t
#define GB_XTYPE            INT8
#define GB_X_NBITS          8
#define GB_REAL
#define GB_SIGNED_INT
#include "builtin/factory/GB_builtin_template.h"

#define GB_TYPE             int16_t
#define GB_XTYPE            INT16
#define GB_X_NBITS          16
#define GB_REAL
#define GB_SIGNED_INT
#include "builtin/factory/GB_builtin_template.h"

#define GB_TYPE             int32_t
#define GB_XTYPE            INT32
#define GB_X_NBITS          32
#define GB_REAL
#define GB_SIGNED_INT
#define GB_SIGNED_INDEX
#include "builtin/factory/GB_builtin_template.h"

#define GB_TYPE             int64_t
#define GB_XTYPE            INT64
#define GB_X_NBITS          64
#define GB_REAL
#define GB_SIGNED_INT
#define GB_SIGNED_INDEX
#define GB_SIGNED_INDEX64
#include "builtin/factory/GB_builtin_template.h"

#define GB_TYPE             uint8_t
#define GB_XTYPE            UINT8
#define GB_X_NBITS          8
#define GB_REAL
#define GB_UNSIGNED_INT
#include "builtin/factory/GB_builtin_template.h"

#define GB_TYPE             uint16_t
#define GB_XTYPE            UINT16
#define GB_X_NBITS          16
#define GB_REAL
#define GB_UNSIGNED_INT
#include "builtin/factory/GB_builtin_template.h"

#define GB_TYPE             uint32_t
#define GB_XTYPE            UINT32
#define GB_X_NBITS          32
#define GB_REAL
#define GB_UNSIGNED_INT
#include "builtin/factory/GB_builtin_template.h"

#define GB_TYPE             uint64_t
#define GB_XTYPE            UINT64
#define GB_X_NBITS          64
#define GB_REAL
#define GB_UNSIGNED_INT
#include "builtin/factory/GB_builtin_template.h"

#define GB_TYPE             float
#define GB_XTYPE            FP32
#define GB_X_NBITS          32
#define GB_REAL
#define GB_FLOATING_POINT
#define GB_FLOAT
#include "builtin/factory/GB_builtin_template.h"

#define GB_TYPE             double
#define GB_XTYPE            FP64
#define GB_X_NBITS          64
#define GB_REAL
#define GB_FLOATING_POINT
#define GB_DOUBLE
#include "builtin/factory/GB_builtin_template.h"

#define GB_TYPE             GxB_FC32_t
#define GB_XTYPE            FC32
#define GB_X_NBITS          64
#define GB_COMPLEX
#define GB_FLOATING_POINT
#define GB_FLOAT_COMPLEX
#include "builtin/factory/GB_builtin_template.h"

#define GB_TYPE             GxB_FC64_t
#define GB_XTYPE            FC64
#define GB_X_NBITS          128
#define GB_COMPLEX
#define GB_FLOATING_POINT
#define GB_DOUBLE_COMPLEX
#include "builtin/factory/GB_builtin_template.h"

#endif