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
|