From d660fe9d60779bf0f9a0d52c194263b66e4689a9 Mon Sep 17 00:00:00 2001 From: Jim Kitchen Date: Fri, 28 Oct 2022 09:06:36 -0500 Subject: [PATCH] Add handling for variadic functions on arm64 osx-arm64 handles variadic functions differently than x86. cffi doesn't appear to handle this, so a bit of a hack is used to trick cffi into providing varargs in the expected manner for arm64. --- suitesparse_graphblas/__init__.py | 38 +- suitesparse_graphblas/build.py | 4 + suitesparse_graphblas/create_headers.py | 16 +- suitesparse_graphblas/io/binary.py | 1 - suitesparse_graphblas/io/serialize.py | 10 +- suitesparse_graphblas/matrix.py | 34 +- .../suitesparse_graphblas_arm64.h | 3468 +++++++++++++++++ 7 files changed, 3544 insertions(+), 27 deletions(-) create mode 100644 suitesparse_graphblas/suitesparse_graphblas_arm64.h diff --git a/suitesparse_graphblas/__init__.py b/suitesparse_graphblas/__init__.py index cc27723..7569034 100644 --- a/suitesparse_graphblas/__init__.py +++ b/suitesparse_graphblas/__init__.py @@ -3,10 +3,40 @@ from . import utils from ._graphblas import ffi, lib # noqa +import struct +import platform + +_is_osx_arm64 = platform.machine() == "arm64" +_c_float = ffi.typeof("float") +_c_double = ffi.typeof("double") + + +if _is_osx_arm64: + + def vararg(val): + # Interpret float as int32 and double as int64 + # https://devblogs.microsoft.com/oldnewthing/20220823-00/?p=107041 + tov = ffi.typeof(val) + if tov == _c_float: + val = struct.unpack("l", struct.pack("f", val))[0] + val = ffi.cast("int64_t", val) + elif tov == _c_double: + val = struct.unpack("q", struct.pack("d", val))[0] + val = ffi.cast("int64_t", val) + # Cast variadic argument as char * to force it onto the stack where ARM64 expects it + # https://developer.apple.com/documentation/xcode/writing-arm64-code-for-apple-platforms + return ffi.cast("char *", val) + +else: + + def vararg(val): + return val + def is_initialized(): """Is GraphBLAS initialized via GrB_init or GxB_init?""" - return lib.GxB_Global_Option_get(lib.GxB_MODE, ffi.new("GrB_Mode*")) != lib.GrB_PANIC + mode = ffi.new("GrB_Mode*") + return lib.GxB_Global_Option_get(lib.GxB_MODE, vararg(mode)) != lib.GrB_PANIC def supports_complex(): @@ -214,7 +244,7 @@ def __init__(self): def is_enabled(self): """Is burble enabled?""" val_ptr = ffi.new("bool*") - info = lib.GxB_Global_Option_get(lib.GxB_BURBLE, val_ptr) + info = lib.GxB_Global_Option_get(lib.GxB_BURBLE, vararg(val_ptr)) if info != lib.GrB_SUCCESS: raise _error_code_lookup[info]( "Failed to get burble status (has GraphBLAS been initialized?" @@ -223,7 +253,7 @@ def is_enabled(self): def enable(self): """Enable diagnostic output""" - info = lib.GxB_Global_Option_set(lib.GxB_BURBLE, ffi.cast("int", 1)) + info = lib.GxB_Global_Option_set(lib.GxB_BURBLE, vararg(ffi.cast("int", 1))) if info != lib.GrB_SUCCESS: raise _error_code_lookup[info]( "Failed to enable burble (has GraphBLAS been initialized?" @@ -231,7 +261,7 @@ def enable(self): def disable(self): """Disable diagnostic output""" - info = lib.GxB_Global_Option_set(lib.GxB_BURBLE, ffi.cast("int", 0)) + info = lib.GxB_Global_Option_set(lib.GxB_BURBLE, vararg(ffi.cast("int", 0))) if info != lib.GrB_SUCCESS: raise _error_code_lookup[info]( "Failed to disable burble (has GraphBLAS been initialized?" diff --git a/suitesparse_graphblas/build.py b/suitesparse_graphblas/build.py index 9a2df43..e8a18ee 100644 --- a/suitesparse_graphblas/build.py +++ b/suitesparse_graphblas/build.py @@ -1,9 +1,11 @@ import os import sys +import platform from cffi import FFI is_win = sys.platform.startswith("win") +is_arm64 = platform.machine() == "arm64" thisdir = os.path.dirname(__file__) ffibuilder = FFI() @@ -28,6 +30,8 @@ header = "suitesparse_graphblas.h" if is_win: header = "suitesparse_graphblas_no_complex.h" +if is_arm64: + header = "suitesparse_graphblas_arm64.h" gb_cdef = open(os.path.join(thisdir, header)) ffibuilder.cdef(gb_cdef.read()) diff --git a/suitesparse_graphblas/create_headers.py b/suitesparse_graphblas/create_headers.py index c586422..675feda 100644 --- a/suitesparse_graphblas/create_headers.py +++ b/suitesparse_graphblas/create_headers.py @@ -796,6 +796,7 @@ def main(): # final files used by cffi (with and without complex numbers) final_h = os.path.join(thisdir, "suitesparse_graphblas.h") + final_arm64_h = os.path.join(thisdir, "suitesparse_graphblas_arm64.h") final_no_complex_h = os.path.join(thisdir, "suitesparse_graphblas_no_complex.h") source_c = os.path.join(thisdir, "source.c") @@ -823,21 +824,30 @@ def main(): with open(final_h, "w") as f: f.write("\n".join(text)) + # Create final header file (arm64) + # Replace all variadic arguments (...) with "char *" + print(f"Step 4: parse header file to create {final_arm64_h}") + orig_text = text + patt = re.compile(r"^(extern GrB_Info .*\(.*)(\.\.\.)(\);)$") + text = [patt.sub(r"\1char *\3", line) for line in orig_text] + with open(final_arm64_h, "w") as f: + f.write("\n".join(text)) + # Create final header file (no complex) - print(f"Step 4: parse header file to create {final_no_complex_h}") + print(f"Step 5: parse header file to create {final_no_complex_h}") groups_no_complex = parse_header(processed_h, skip_complex=True) text = create_header_text(groups_no_complex) with open(final_no_complex_h, "w") as f: f.write("\n".join(text)) # Create source - print(f"Step 5: create {source_c}") + print(f"Step 6: create {source_c}") text = create_source_text(groups) with open(source_c, "w") as f: f.write("\n".join(text)) # Check defines - print("Step 6: check #define definitions") + print("Step 7: check #define definitions") with open(graphblas_h) as f: text = f.read() define_lines = re.compile(r".*?#define\s+\w+\s+") diff --git a/suitesparse_graphblas/io/binary.py b/suitesparse_graphblas/io/binary.py index 603a291..c3d6d9f 100644 --- a/suitesparse_graphblas/io/binary.py +++ b/suitesparse_graphblas/io/binary.py @@ -124,7 +124,6 @@ def binwrite(A, filename, comments=None, opener=Path.open): typecode = ffinew("int32_t*") matrix_type = ffi.new("GrB_Type*") - sparsity_status = ffinew("int32_t*") nrows[0] = matrix.nrows(A) ncols[0] = matrix.ncols(A) diff --git a/suitesparse_graphblas/io/serialize.py b/suitesparse_graphblas/io/serialize.py index 1a9027b..1755b81 100644 --- a/suitesparse_graphblas/io/serialize.py +++ b/suitesparse_graphblas/io/serialize.py @@ -1,6 +1,6 @@ import numpy as np -from suitesparse_graphblas import check_status, ffi, lib +from suitesparse_graphblas import check_status, ffi, lib, vararg from suitesparse_graphblas.utils import claim_buffer @@ -20,7 +20,10 @@ def get_serialize_desc(compression=lib.GxB_COMPRESSION_DEFAULT, level=None, nthr check_status(desc, lib.GrB_Descriptor_new(desc)) desc = ffi.gc(desc, free_desc) if nthreads is not None: - check_status(desc, lib.GxB_Desc_set(desc[0], lib.GxB_NTHREADS, ffi.cast("int", nthreads))) + check_status( + desc, + lib.GxB_Desc_set(desc[0], lib.GxB_NTHREADS, vararg(ffi.cast("int", nthreads))), + ) if compression is not None: if level is not None and compression in { lib.GxB_COMPRESSION_LZ4HC, @@ -28,7 +31,8 @@ def get_serialize_desc(compression=lib.GxB_COMPRESSION_DEFAULT, level=None, nthr }: compression += level check_status( - desc, lib.GxB_Desc_set(desc[0], lib.GxB_COMPRESSION, ffi.cast("int", compression)) + desc, + lib.GxB_Desc_set(desc[0], lib.GxB_COMPRESSION, vararg(ffi.cast("int", compression))), ) return desc diff --git a/suitesparse_graphblas/matrix.py b/suitesparse_graphblas/matrix.py index b337b87..0e62040 100644 --- a/suitesparse_graphblas/matrix.py +++ b/suitesparse_graphblas/matrix.py @@ -1,4 +1,4 @@ -from suitesparse_graphblas import check_status, ffi, lib +from suitesparse_graphblas import check_status, ffi, lib, vararg from .io.serialize import deserialize_matrix as deserialize # noqa from .io.serialize import serialize_matrix as serialize # noqa @@ -109,7 +109,7 @@ def format(A): """ format = ffi.new("GxB_Format_Value*") - check_status(A, lib.GxB_Matrix_Option_get(A[0], lib.GxB_FORMAT, format)) + check_status(A, lib.GxB_Matrix_Option_get(A[0], lib.GxB_FORMAT, vararg(format))) return format[0] @@ -122,58 +122,60 @@ def set_format(A, format): True """ - check_status( - A, lib.GxB_Matrix_Option_set(A[0], lib.GxB_FORMAT, ffi.cast("GxB_Format_Value", format)) - ) + format_val = ffi.cast("GxB_Format_Value", format) + check_status(A, lib.GxB_Matrix_Option_set(A[0], lib.GxB_FORMAT, vararg(format_val))) def sparsity_status(A): """Get the sparsity status of the matrix.""" sparsity_status = ffi.new("int32_t*") - check_status(A, lib.GxB_Matrix_Option_get(A[0], lib.GxB_SPARSITY_STATUS, sparsity_status)) + check_status( + A, lib.GxB_Matrix_Option_get(A[0], lib.GxB_SPARSITY_STATUS, vararg(sparsity_status)) + ) return sparsity_status[0] def sparsity_control(A): """Get the sparsity control of the matrix.""" sparsity_control = ffi.new("int32_t*") - check_status(A, lib.GxB_Matrix_Option_get(A[0], lib.GxB_SPARSITY_CONTROL, sparsity_control)) + check_status( + A, lib.GxB_Matrix_Option_get(A[0], lib.GxB_SPARSITY_CONTROL, vararg(sparsity_control)) + ) return sparsity_control[0] def set_sparsity_control(A, sparsity): """Set the sparsity control of the matrix.""" + sparsity_control = ffi.cast("int32_t", sparsity) check_status( - A, lib.GxB_Matrix_Option_set(A[0], lib.GxB_SPARSITY_CONTROL, ffi.cast("int", sparsity)) + A, lib.GxB_Matrix_Option_set(A[0], lib.GxB_SPARSITY_CONTROL, vararg(sparsity_control)) ) def hyper_switch(A): """Get the hyper switch of the matrix.""" hyper_switch = ffi.new("double*") - check_status(A, lib.GxB_Matrix_Option_get(A[0], lib.GxB_HYPER_SWITCH, hyper_switch)) + check_status(A, lib.GxB_Matrix_Option_get(A[0], lib.GxB_HYPER_SWITCH, vararg(hyper_switch))) return hyper_switch[0] def set_hyper_switch(A, hyper_switch): """Set the hyper switch of the matrix.""" - check_status( - A, lib.GxB_Matrix_Option_set(A[0], lib.GxB_HYPER_SWITCH, ffi.cast("double", hyper_switch)) - ) + hyper_switch = ffi.cast("double", hyper_switch) + check_status(A, lib.GxB_Matrix_Option_set(A[0], lib.GxB_HYPER_SWITCH, vararg(hyper_switch))) def bitmap_switch(A): """Get the bitmap switch of the matrix.""" bitmap_switch = ffi.new("double*") - check_status(A, lib.GxB_Matrix_Option_get(A[0], lib.GxB_BITMAP_SWITCH, bitmap_switch)) + check_status(A, lib.GxB_Matrix_Option_get(A[0], lib.GxB_BITMAP_SWITCH, vararg(bitmap_switch))) return bitmap_switch[0] def set_bitmap_switch(A, bitmap_switch): """Set the bitmap switch of the matrix.""" - check_status( - A, lib.GxB_Matrix_Option_set(A[0], lib.GxB_BITMAP_SWITCH, ffi.cast("double", bitmap_switch)) - ) + bitmap_switch = ffi.cast("double", bitmap_switch) + check_status(A, lib.GxB_Matrix_Option_set(A[0], lib.GxB_BITMAP_SWITCH, vararg(bitmap_switch))) def set_bool(A, value, i, j): diff --git a/suitesparse_graphblas/suitesparse_graphblas_arm64.h b/suitesparse_graphblas/suitesparse_graphblas_arm64.h new file mode 100644 index 0000000..887b5d9 --- /dev/null +++ b/suitesparse_graphblas/suitesparse_graphblas_arm64.h @@ -0,0 +1,3468 @@ +/* This file is automatically generated */ +/* GrB typedefs */ +typedef struct GB_BinaryOp_opaque *GrB_BinaryOp; +typedef struct GB_Descriptor_opaque *GrB_Descriptor; +typedef struct GB_IndexUnaryOp_opaque *GrB_IndexUnaryOp; +typedef struct GB_Matrix_opaque *GrB_Matrix; +typedef struct GB_Monoid_opaque *GrB_Monoid; +typedef struct GB_Scalar_opaque *GrB_Scalar; +typedef struct GB_Semiring_opaque *GrB_Semiring; +typedef struct GB_Type_opaque *GrB_Type; +typedef struct GB_UnaryOp_opaque *GrB_UnaryOp; +typedef struct GB_Vector_opaque *GrB_Vector; +typedef uint64_t GrB_Index; + +/* GxB typedefs */ +typedef double _Complex GxB_FC64_t; +typedef float _Complex GxB_FC32_t; +typedef struct GB_Iterator_opaque *GxB_Iterator; +typedef struct GB_Scalar_opaque *GxB_Scalar; +typedef struct GB_SelectOp_opaque *GxB_SelectOp; + +/* GxB typedefs (functions) */ +typedef bool (*GxB_select_function)(GrB_Index i, GrB_Index j, const void *x, const void *thunk); +typedef void (*GxB_binary_function)(void *, const void *, const void *); +typedef void (*GxB_index_unary_function)(void *z, const void *x, GrB_Index i, GrB_Index j, const void *y); +typedef void (*GxB_unary_function)(void *, const void *); + +/* GrB enums */ +typedef enum +{ + GrB_OUTP = 0, + GrB_MASK = 1, + GrB_INP0 = 2, + GrB_INP1 = 3, + GxB_DESCRIPTOR_NTHREADS = 5, + GxB_DESCRIPTOR_CHUNK = 7, + GxB_DESCRIPTOR_GPU_CONTROL = 21, + GxB_DESCRIPTOR_GPU_CHUNK = 22, + GxB_AxB_METHOD = 1000, + GxB_SORT = 35, + GxB_COMPRESSION = 36, + GxB_IMPORT = 37 +} GrB_Desc_Field; + +typedef enum +{ + GxB_DEFAULT = 0, + GrB_REPLACE = 1, + GrB_COMP = 2, + GrB_STRUCTURE = 4, + GrB_TRAN = 3, + GxB_GPU_ALWAYS = 2001, + GxB_GPU_NEVER = 2002, + GxB_AxB_GUSTAVSON = 1001, + GxB_AxB_DOT = 1003, + GxB_AxB_HASH = 1004, + GxB_AxB_SAXPY = 1005, + GxB_SECURE_IMPORT = 502 +} GrB_Desc_Value; + +typedef enum +{ + GrB_CSR_FORMAT = 0, + GrB_CSC_FORMAT = 1, + GrB_COO_FORMAT = 2 +} GrB_Format; + +typedef enum +{ + GrB_SUCCESS = 0, + GrB_NO_VALUE = 1, + GxB_EXHAUSTED = 2, + GrB_UNINITIALIZED_OBJECT = -1, + GrB_NULL_POINTER = -2, + GrB_INVALID_VALUE = -3, + GrB_INVALID_INDEX = -4, + GrB_DOMAIN_MISMATCH = -5, + GrB_DIMENSION_MISMATCH = -6, + GrB_OUTPUT_NOT_EMPTY = -7, + GrB_NOT_IMPLEMENTED = -8, + GrB_PANIC = -101, + GrB_OUT_OF_MEMORY = -102, + GrB_INSUFFICIENT_SPACE = -103, + GrB_INVALID_OBJECT = -104, + GrB_INDEX_OUT_OF_BOUNDS = -105, + GrB_EMPTY_OBJECT = -106 +} GrB_Info; + +typedef enum +{ + GrB_NONBLOCKING = 0, + GrB_BLOCKING = 1, + GxB_NONBLOCKING_GPU = 2, + GxB_BLOCKING_GPU = 3 +} GrB_Mode; + +typedef enum +{ + GrB_COMPLETE = 0, + GrB_MATERIALIZE = 1 +} GrB_WaitMode; + +/* GxB enums */ +typedef enum +{ + GxB_BY_ROW = 0, + GxB_BY_COL = 1, + GxB_NO_FORMAT = -1 +} GxB_Format_Value; + +typedef enum +{ + GxB_HYPER_SWITCH = 0, + GxB_BITMAP_SWITCH = 34, + GxB_FORMAT = 1, + GxB_MODE = 2, + GxB_LIBRARY_NAME = 8, + GxB_LIBRARY_VERSION = 9, + GxB_LIBRARY_DATE = 10, + GxB_LIBRARY_ABOUT = 11, + GxB_LIBRARY_URL = 12, + GxB_LIBRARY_LICENSE = 13, + GxB_LIBRARY_COMPILE_DATE = 14, + GxB_LIBRARY_COMPILE_TIME = 15, + GxB_API_VERSION = 16, + GxB_API_DATE = 17, + GxB_API_ABOUT = 18, + GxB_API_URL = 19, + GxB_COMPILER_VERSION = 23, + GxB_COMPILER_NAME = 24, + GxB_GLOBAL_NTHREADS = 5, + GxB_GLOBAL_CHUNK = 7, + GxB_BURBLE = 99, + GxB_PRINTF = 101, + GxB_FLUSH = 102, + GxB_MEMORY_POOL = 103, + GxB_PRINT_1BASED = 104, + GxB_SPARSITY_STATUS = 33, + GxB_SPARSITY_CONTROL = 32, + GxB_GLOBAL_GPU_CONTROL = 21, + GxB_GLOBAL_GPU_CHUNK = 22 +} GxB_Option_Field; + +typedef enum +{ + GxB_SILENT = 0, + GxB_SUMMARY = 1, + GxB_SHORT = 2, + GxB_COMPLETE = 3, + GxB_SHORT_VERBOSE = 4, + GxB_COMPLETE_VERBOSE = 5 +} GxB_Print_Level; + +/* GrB consts */ +extern const uint64_t *GrB_ALL; + +/* GxB consts */ +extern const GxB_Format_Value GxB_FORMAT_DEFAULT; +extern const double GxB_ALWAYS_HYPER; +extern const double GxB_HYPER_DEFAULT; +extern const double GxB_NEVER_HYPER; + +/* GrB objects */ +extern GrB_BinaryOp GrB_BAND_INT8; +extern GrB_BinaryOp GrB_BAND_INT16; +extern GrB_BinaryOp GrB_BAND_INT32; +extern GrB_BinaryOp GrB_BAND_INT64; +extern GrB_BinaryOp GrB_BAND_UINT8; +extern GrB_BinaryOp GrB_BAND_UINT16; +extern GrB_BinaryOp GrB_BAND_UINT32; +extern GrB_BinaryOp GrB_BAND_UINT64; +extern GrB_BinaryOp GrB_BOR_INT8; +extern GrB_BinaryOp GrB_BOR_INT16; +extern GrB_BinaryOp GrB_BOR_INT32; +extern GrB_BinaryOp GrB_BOR_INT64; +extern GrB_BinaryOp GrB_BOR_UINT8; +extern GrB_BinaryOp GrB_BOR_UINT16; +extern GrB_BinaryOp GrB_BOR_UINT32; +extern GrB_BinaryOp GrB_BOR_UINT64; +extern GrB_BinaryOp GrB_BXNOR_INT8; +extern GrB_BinaryOp GrB_BXNOR_INT16; +extern GrB_BinaryOp GrB_BXNOR_INT32; +extern GrB_BinaryOp GrB_BXNOR_INT64; +extern GrB_BinaryOp GrB_BXNOR_UINT8; +extern GrB_BinaryOp GrB_BXNOR_UINT16; +extern GrB_BinaryOp GrB_BXNOR_UINT32; +extern GrB_BinaryOp GrB_BXNOR_UINT64; +extern GrB_BinaryOp GrB_BXOR_INT8; +extern GrB_BinaryOp GrB_BXOR_INT16; +extern GrB_BinaryOp GrB_BXOR_INT32; +extern GrB_BinaryOp GrB_BXOR_INT64; +extern GrB_BinaryOp GrB_BXOR_UINT8; +extern GrB_BinaryOp GrB_BXOR_UINT16; +extern GrB_BinaryOp GrB_BXOR_UINT32; +extern GrB_BinaryOp GrB_BXOR_UINT64; +extern GrB_BinaryOp GrB_DIV_BOOL; +extern GrB_BinaryOp GrB_DIV_FP32; +extern GrB_BinaryOp GrB_DIV_FP64; +extern GrB_BinaryOp GrB_DIV_INT8; +extern GrB_BinaryOp GrB_DIV_INT16; +extern GrB_BinaryOp GrB_DIV_INT32; +extern GrB_BinaryOp GrB_DIV_INT64; +extern GrB_BinaryOp GrB_DIV_UINT8; +extern GrB_BinaryOp GrB_DIV_UINT16; +extern GrB_BinaryOp GrB_DIV_UINT32; +extern GrB_BinaryOp GrB_DIV_UINT64; +extern GrB_BinaryOp GrB_EQ_BOOL; +extern GrB_BinaryOp GrB_EQ_FP32; +extern GrB_BinaryOp GrB_EQ_FP64; +extern GrB_BinaryOp GrB_EQ_INT8; +extern GrB_BinaryOp GrB_EQ_INT16; +extern GrB_BinaryOp GrB_EQ_INT32; +extern GrB_BinaryOp GrB_EQ_INT64; +extern GrB_BinaryOp GrB_EQ_UINT8; +extern GrB_BinaryOp GrB_EQ_UINT16; +extern GrB_BinaryOp GrB_EQ_UINT32; +extern GrB_BinaryOp GrB_EQ_UINT64; +extern GrB_BinaryOp GrB_FIRST_BOOL; +extern GrB_BinaryOp GrB_FIRST_FP32; +extern GrB_BinaryOp GrB_FIRST_FP64; +extern GrB_BinaryOp GrB_FIRST_INT8; +extern GrB_BinaryOp GrB_FIRST_INT16; +extern GrB_BinaryOp GrB_FIRST_INT32; +extern GrB_BinaryOp GrB_FIRST_INT64; +extern GrB_BinaryOp GrB_FIRST_UINT8; +extern GrB_BinaryOp GrB_FIRST_UINT16; +extern GrB_BinaryOp GrB_FIRST_UINT32; +extern GrB_BinaryOp GrB_FIRST_UINT64; +extern GrB_BinaryOp GrB_GE_BOOL; +extern GrB_BinaryOp GrB_GE_FP32; +extern GrB_BinaryOp GrB_GE_FP64; +extern GrB_BinaryOp GrB_GE_INT8; +extern GrB_BinaryOp GrB_GE_INT16; +extern GrB_BinaryOp GrB_GE_INT32; +extern GrB_BinaryOp GrB_GE_INT64; +extern GrB_BinaryOp GrB_GE_UINT8; +extern GrB_BinaryOp GrB_GE_UINT16; +extern GrB_BinaryOp GrB_GE_UINT32; +extern GrB_BinaryOp GrB_GE_UINT64; +extern GrB_BinaryOp GrB_GT_BOOL; +extern GrB_BinaryOp GrB_GT_FP32; +extern GrB_BinaryOp GrB_GT_FP64; +extern GrB_BinaryOp GrB_GT_INT8; +extern GrB_BinaryOp GrB_GT_INT16; +extern GrB_BinaryOp GrB_GT_INT32; +extern GrB_BinaryOp GrB_GT_INT64; +extern GrB_BinaryOp GrB_GT_UINT8; +extern GrB_BinaryOp GrB_GT_UINT16; +extern GrB_BinaryOp GrB_GT_UINT32; +extern GrB_BinaryOp GrB_GT_UINT64; +extern GrB_BinaryOp GrB_LAND; +extern GrB_BinaryOp GrB_LE_BOOL; +extern GrB_BinaryOp GrB_LE_FP32; +extern GrB_BinaryOp GrB_LE_FP64; +extern GrB_BinaryOp GrB_LE_INT8; +extern GrB_BinaryOp GrB_LE_INT16; +extern GrB_BinaryOp GrB_LE_INT32; +extern GrB_BinaryOp GrB_LE_INT64; +extern GrB_BinaryOp GrB_LE_UINT8; +extern GrB_BinaryOp GrB_LE_UINT16; +extern GrB_BinaryOp GrB_LE_UINT32; +extern GrB_BinaryOp GrB_LE_UINT64; +extern GrB_BinaryOp GrB_LOR; +extern GrB_BinaryOp GrB_LT_BOOL; +extern GrB_BinaryOp GrB_LT_FP32; +extern GrB_BinaryOp GrB_LT_FP64; +extern GrB_BinaryOp GrB_LT_INT8; +extern GrB_BinaryOp GrB_LT_INT16; +extern GrB_BinaryOp GrB_LT_INT32; +extern GrB_BinaryOp GrB_LT_INT64; +extern GrB_BinaryOp GrB_LT_UINT8; +extern GrB_BinaryOp GrB_LT_UINT16; +extern GrB_BinaryOp GrB_LT_UINT32; +extern GrB_BinaryOp GrB_LT_UINT64; +extern GrB_BinaryOp GrB_LXNOR; +extern GrB_BinaryOp GrB_LXOR; +extern GrB_BinaryOp GrB_MAX_BOOL; +extern GrB_BinaryOp GrB_MAX_FP32; +extern GrB_BinaryOp GrB_MAX_FP64; +extern GrB_BinaryOp GrB_MAX_INT8; +extern GrB_BinaryOp GrB_MAX_INT16; +extern GrB_BinaryOp GrB_MAX_INT32; +extern GrB_BinaryOp GrB_MAX_INT64; +extern GrB_BinaryOp GrB_MAX_UINT8; +extern GrB_BinaryOp GrB_MAX_UINT16; +extern GrB_BinaryOp GrB_MAX_UINT32; +extern GrB_BinaryOp GrB_MAX_UINT64; +extern GrB_BinaryOp GrB_MINUS_BOOL; +extern GrB_BinaryOp GrB_MINUS_FP32; +extern GrB_BinaryOp GrB_MINUS_FP64; +extern GrB_BinaryOp GrB_MINUS_INT8; +extern GrB_BinaryOp GrB_MINUS_INT16; +extern GrB_BinaryOp GrB_MINUS_INT32; +extern GrB_BinaryOp GrB_MINUS_INT64; +extern GrB_BinaryOp GrB_MINUS_UINT8; +extern GrB_BinaryOp GrB_MINUS_UINT16; +extern GrB_BinaryOp GrB_MINUS_UINT32; +extern GrB_BinaryOp GrB_MINUS_UINT64; +extern GrB_BinaryOp GrB_MIN_BOOL; +extern GrB_BinaryOp GrB_MIN_FP32; +extern GrB_BinaryOp GrB_MIN_FP64; +extern GrB_BinaryOp GrB_MIN_INT8; +extern GrB_BinaryOp GrB_MIN_INT16; +extern GrB_BinaryOp GrB_MIN_INT32; +extern GrB_BinaryOp GrB_MIN_INT64; +extern GrB_BinaryOp GrB_MIN_UINT8; +extern GrB_BinaryOp GrB_MIN_UINT16; +extern GrB_BinaryOp GrB_MIN_UINT32; +extern GrB_BinaryOp GrB_MIN_UINT64; +extern GrB_BinaryOp GrB_NE_BOOL; +extern GrB_BinaryOp GrB_NE_FP32; +extern GrB_BinaryOp GrB_NE_FP64; +extern GrB_BinaryOp GrB_NE_INT8; +extern GrB_BinaryOp GrB_NE_INT16; +extern GrB_BinaryOp GrB_NE_INT32; +extern GrB_BinaryOp GrB_NE_INT64; +extern GrB_BinaryOp GrB_NE_UINT8; +extern GrB_BinaryOp GrB_NE_UINT16; +extern GrB_BinaryOp GrB_NE_UINT32; +extern GrB_BinaryOp GrB_NE_UINT64; +extern GrB_BinaryOp GrB_ONEB_BOOL; +extern GrB_BinaryOp GrB_ONEB_FP32; +extern GrB_BinaryOp GrB_ONEB_FP64; +extern GrB_BinaryOp GrB_ONEB_INT8; +extern GrB_BinaryOp GrB_ONEB_INT16; +extern GrB_BinaryOp GrB_ONEB_INT32; +extern GrB_BinaryOp GrB_ONEB_INT64; +extern GrB_BinaryOp GrB_ONEB_UINT8; +extern GrB_BinaryOp GrB_ONEB_UINT16; +extern GrB_BinaryOp GrB_ONEB_UINT32; +extern GrB_BinaryOp GrB_ONEB_UINT64; +extern GrB_BinaryOp GrB_PLUS_BOOL; +extern GrB_BinaryOp GrB_PLUS_FP32; +extern GrB_BinaryOp GrB_PLUS_FP64; +extern GrB_BinaryOp GrB_PLUS_INT8; +extern GrB_BinaryOp GrB_PLUS_INT16; +extern GrB_BinaryOp GrB_PLUS_INT32; +extern GrB_BinaryOp GrB_PLUS_INT64; +extern GrB_BinaryOp GrB_PLUS_UINT8; +extern GrB_BinaryOp GrB_PLUS_UINT16; +extern GrB_BinaryOp GrB_PLUS_UINT32; +extern GrB_BinaryOp GrB_PLUS_UINT64; +extern GrB_BinaryOp GrB_SECOND_BOOL; +extern GrB_BinaryOp GrB_SECOND_FP32; +extern GrB_BinaryOp GrB_SECOND_FP64; +extern GrB_BinaryOp GrB_SECOND_INT8; +extern GrB_BinaryOp GrB_SECOND_INT16; +extern GrB_BinaryOp GrB_SECOND_INT32; +extern GrB_BinaryOp GrB_SECOND_INT64; +extern GrB_BinaryOp GrB_SECOND_UINT8; +extern GrB_BinaryOp GrB_SECOND_UINT16; +extern GrB_BinaryOp GrB_SECOND_UINT32; +extern GrB_BinaryOp GrB_SECOND_UINT64; +extern GrB_BinaryOp GrB_TIMES_BOOL; +extern GrB_BinaryOp GrB_TIMES_FP32; +extern GrB_BinaryOp GrB_TIMES_FP64; +extern GrB_BinaryOp GrB_TIMES_INT8; +extern GrB_BinaryOp GrB_TIMES_INT16; +extern GrB_BinaryOp GrB_TIMES_INT32; +extern GrB_BinaryOp GrB_TIMES_INT64; +extern GrB_BinaryOp GrB_TIMES_UINT8; +extern GrB_BinaryOp GrB_TIMES_UINT16; +extern GrB_BinaryOp GrB_TIMES_UINT32; +extern GrB_BinaryOp GrB_TIMES_UINT64; +extern GrB_Descriptor GrB_DESC_C; +extern GrB_Descriptor GrB_DESC_CT0; +extern GrB_Descriptor GrB_DESC_CT0T1; +extern GrB_Descriptor GrB_DESC_CT1; +extern GrB_Descriptor GrB_DESC_R; +extern GrB_Descriptor GrB_DESC_RC; +extern GrB_Descriptor GrB_DESC_RCT0; +extern GrB_Descriptor GrB_DESC_RCT0T1; +extern GrB_Descriptor GrB_DESC_RCT1; +extern GrB_Descriptor GrB_DESC_RS; +extern GrB_Descriptor GrB_DESC_RSC; +extern GrB_Descriptor GrB_DESC_RSCT0; +extern GrB_Descriptor GrB_DESC_RSCT0T1; +extern GrB_Descriptor GrB_DESC_RSCT1; +extern GrB_Descriptor GrB_DESC_RST0; +extern GrB_Descriptor GrB_DESC_RST0T1; +extern GrB_Descriptor GrB_DESC_RST1; +extern GrB_Descriptor GrB_DESC_RT0; +extern GrB_Descriptor GrB_DESC_RT0T1; +extern GrB_Descriptor GrB_DESC_RT1; +extern GrB_Descriptor GrB_DESC_S; +extern GrB_Descriptor GrB_DESC_SC; +extern GrB_Descriptor GrB_DESC_SCT0; +extern GrB_Descriptor GrB_DESC_SCT0T1; +extern GrB_Descriptor GrB_DESC_SCT1; +extern GrB_Descriptor GrB_DESC_ST0; +extern GrB_Descriptor GrB_DESC_ST0T1; +extern GrB_Descriptor GrB_DESC_ST1; +extern GrB_Descriptor GrB_DESC_T0; +extern GrB_Descriptor GrB_DESC_T0T1; +extern GrB_Descriptor GrB_DESC_T1; +extern GrB_IndexUnaryOp GrB_COLGT; +extern GrB_IndexUnaryOp GrB_COLINDEX_INT32; +extern GrB_IndexUnaryOp GrB_COLINDEX_INT64; +extern GrB_IndexUnaryOp GrB_COLLE; +extern GrB_IndexUnaryOp GrB_DIAG; +extern GrB_IndexUnaryOp GrB_DIAGINDEX_INT32; +extern GrB_IndexUnaryOp GrB_DIAGINDEX_INT64; +extern GrB_IndexUnaryOp GrB_OFFDIAG; +extern GrB_IndexUnaryOp GrB_ROWGT; +extern GrB_IndexUnaryOp GrB_ROWINDEX_INT32; +extern GrB_IndexUnaryOp GrB_ROWINDEX_INT64; +extern GrB_IndexUnaryOp GrB_ROWLE; +extern GrB_IndexUnaryOp GrB_TRIL; +extern GrB_IndexUnaryOp GrB_TRIU; +extern GrB_IndexUnaryOp GrB_VALUEEQ_BOOL; +extern GrB_IndexUnaryOp GrB_VALUEEQ_FP32; +extern GrB_IndexUnaryOp GrB_VALUEEQ_FP64; +extern GrB_IndexUnaryOp GrB_VALUEEQ_INT8; +extern GrB_IndexUnaryOp GrB_VALUEEQ_INT16; +extern GrB_IndexUnaryOp GrB_VALUEEQ_INT32; +extern GrB_IndexUnaryOp GrB_VALUEEQ_INT64; +extern GrB_IndexUnaryOp GrB_VALUEEQ_UINT8; +extern GrB_IndexUnaryOp GrB_VALUEEQ_UINT16; +extern GrB_IndexUnaryOp GrB_VALUEEQ_UINT32; +extern GrB_IndexUnaryOp GrB_VALUEEQ_UINT64; +extern GrB_IndexUnaryOp GrB_VALUEGE_BOOL; +extern GrB_IndexUnaryOp GrB_VALUEGE_FP32; +extern GrB_IndexUnaryOp GrB_VALUEGE_FP64; +extern GrB_IndexUnaryOp GrB_VALUEGE_INT8; +extern GrB_IndexUnaryOp GrB_VALUEGE_INT16; +extern GrB_IndexUnaryOp GrB_VALUEGE_INT32; +extern GrB_IndexUnaryOp GrB_VALUEGE_INT64; +extern GrB_IndexUnaryOp GrB_VALUEGE_UINT8; +extern GrB_IndexUnaryOp GrB_VALUEGE_UINT16; +extern GrB_IndexUnaryOp GrB_VALUEGE_UINT32; +extern GrB_IndexUnaryOp GrB_VALUEGE_UINT64; +extern GrB_IndexUnaryOp GrB_VALUEGT_BOOL; +extern GrB_IndexUnaryOp GrB_VALUEGT_FP32; +extern GrB_IndexUnaryOp GrB_VALUEGT_FP64; +extern GrB_IndexUnaryOp GrB_VALUEGT_INT8; +extern GrB_IndexUnaryOp GrB_VALUEGT_INT16; +extern GrB_IndexUnaryOp GrB_VALUEGT_INT32; +extern GrB_IndexUnaryOp GrB_VALUEGT_INT64; +extern GrB_IndexUnaryOp GrB_VALUEGT_UINT8; +extern GrB_IndexUnaryOp GrB_VALUEGT_UINT16; +extern GrB_IndexUnaryOp GrB_VALUEGT_UINT32; +extern GrB_IndexUnaryOp GrB_VALUEGT_UINT64; +extern GrB_IndexUnaryOp GrB_VALUELE_BOOL; +extern GrB_IndexUnaryOp GrB_VALUELE_FP32; +extern GrB_IndexUnaryOp GrB_VALUELE_FP64; +extern GrB_IndexUnaryOp GrB_VALUELE_INT8; +extern GrB_IndexUnaryOp GrB_VALUELE_INT16; +extern GrB_IndexUnaryOp GrB_VALUELE_INT32; +extern GrB_IndexUnaryOp GrB_VALUELE_INT64; +extern GrB_IndexUnaryOp GrB_VALUELE_UINT8; +extern GrB_IndexUnaryOp GrB_VALUELE_UINT16; +extern GrB_IndexUnaryOp GrB_VALUELE_UINT32; +extern GrB_IndexUnaryOp GrB_VALUELE_UINT64; +extern GrB_IndexUnaryOp GrB_VALUELT_BOOL; +extern GrB_IndexUnaryOp GrB_VALUELT_FP32; +extern GrB_IndexUnaryOp GrB_VALUELT_FP64; +extern GrB_IndexUnaryOp GrB_VALUELT_INT8; +extern GrB_IndexUnaryOp GrB_VALUELT_INT16; +extern GrB_IndexUnaryOp GrB_VALUELT_INT32; +extern GrB_IndexUnaryOp GrB_VALUELT_INT64; +extern GrB_IndexUnaryOp GrB_VALUELT_UINT8; +extern GrB_IndexUnaryOp GrB_VALUELT_UINT16; +extern GrB_IndexUnaryOp GrB_VALUELT_UINT32; +extern GrB_IndexUnaryOp GrB_VALUELT_UINT64; +extern GrB_IndexUnaryOp GrB_VALUENE_BOOL; +extern GrB_IndexUnaryOp GrB_VALUENE_FP32; +extern GrB_IndexUnaryOp GrB_VALUENE_FP64; +extern GrB_IndexUnaryOp GrB_VALUENE_INT8; +extern GrB_IndexUnaryOp GrB_VALUENE_INT16; +extern GrB_IndexUnaryOp GrB_VALUENE_INT32; +extern GrB_IndexUnaryOp GrB_VALUENE_INT64; +extern GrB_IndexUnaryOp GrB_VALUENE_UINT8; +extern GrB_IndexUnaryOp GrB_VALUENE_UINT16; +extern GrB_IndexUnaryOp GrB_VALUENE_UINT32; +extern GrB_IndexUnaryOp GrB_VALUENE_UINT64; +extern GrB_Monoid GrB_LAND_MONOID_BOOL; +extern GrB_Monoid GrB_LOR_MONOID_BOOL; +extern GrB_Monoid GrB_LXNOR_MONOID_BOOL; +extern GrB_Monoid GrB_LXOR_MONOID_BOOL; +extern GrB_Monoid GrB_MAX_MONOID_FP32; +extern GrB_Monoid GrB_MAX_MONOID_FP64; +extern GrB_Monoid GrB_MAX_MONOID_INT8; +extern GrB_Monoid GrB_MAX_MONOID_INT16; +extern GrB_Monoid GrB_MAX_MONOID_INT32; +extern GrB_Monoid GrB_MAX_MONOID_INT64; +extern GrB_Monoid GrB_MAX_MONOID_UINT8; +extern GrB_Monoid GrB_MAX_MONOID_UINT16; +extern GrB_Monoid GrB_MAX_MONOID_UINT32; +extern GrB_Monoid GrB_MAX_MONOID_UINT64; +extern GrB_Monoid GrB_MIN_MONOID_FP32; +extern GrB_Monoid GrB_MIN_MONOID_FP64; +extern GrB_Monoid GrB_MIN_MONOID_INT8; +extern GrB_Monoid GrB_MIN_MONOID_INT16; +extern GrB_Monoid GrB_MIN_MONOID_INT32; +extern GrB_Monoid GrB_MIN_MONOID_INT64; +extern GrB_Monoid GrB_MIN_MONOID_UINT8; +extern GrB_Monoid GrB_MIN_MONOID_UINT16; +extern GrB_Monoid GrB_MIN_MONOID_UINT32; +extern GrB_Monoid GrB_MIN_MONOID_UINT64; +extern GrB_Monoid GrB_PLUS_MONOID_FP32; +extern GrB_Monoid GrB_PLUS_MONOID_FP64; +extern GrB_Monoid GrB_PLUS_MONOID_INT8; +extern GrB_Monoid GrB_PLUS_MONOID_INT16; +extern GrB_Monoid GrB_PLUS_MONOID_INT32; +extern GrB_Monoid GrB_PLUS_MONOID_INT64; +extern GrB_Monoid GrB_PLUS_MONOID_UINT8; +extern GrB_Monoid GrB_PLUS_MONOID_UINT16; +extern GrB_Monoid GrB_PLUS_MONOID_UINT32; +extern GrB_Monoid GrB_PLUS_MONOID_UINT64; +extern GrB_Monoid GrB_TIMES_MONOID_FP32; +extern GrB_Monoid GrB_TIMES_MONOID_FP64; +extern GrB_Monoid GrB_TIMES_MONOID_INT8; +extern GrB_Monoid GrB_TIMES_MONOID_INT16; +extern GrB_Monoid GrB_TIMES_MONOID_INT32; +extern GrB_Monoid GrB_TIMES_MONOID_INT64; +extern GrB_Monoid GrB_TIMES_MONOID_UINT8; +extern GrB_Monoid GrB_TIMES_MONOID_UINT16; +extern GrB_Monoid GrB_TIMES_MONOID_UINT32; +extern GrB_Monoid GrB_TIMES_MONOID_UINT64; +extern GrB_Semiring GrB_LAND_LOR_SEMIRING_BOOL; +extern GrB_Semiring GrB_LOR_LAND_SEMIRING_BOOL; +extern GrB_Semiring GrB_LXNOR_LOR_SEMIRING_BOOL; +extern GrB_Semiring GrB_LXOR_LAND_SEMIRING_BOOL; +extern GrB_Semiring GrB_MAX_FIRST_SEMIRING_FP32; +extern GrB_Semiring GrB_MAX_FIRST_SEMIRING_FP64; +extern GrB_Semiring GrB_MAX_FIRST_SEMIRING_INT8; +extern GrB_Semiring GrB_MAX_FIRST_SEMIRING_INT16; +extern GrB_Semiring GrB_MAX_FIRST_SEMIRING_INT32; +extern GrB_Semiring GrB_MAX_FIRST_SEMIRING_INT64; +extern GrB_Semiring GrB_MAX_FIRST_SEMIRING_UINT8; +extern GrB_Semiring GrB_MAX_FIRST_SEMIRING_UINT16; +extern GrB_Semiring GrB_MAX_FIRST_SEMIRING_UINT32; +extern GrB_Semiring GrB_MAX_FIRST_SEMIRING_UINT64; +extern GrB_Semiring GrB_MAX_MIN_SEMIRING_FP32; +extern GrB_Semiring GrB_MAX_MIN_SEMIRING_FP64; +extern GrB_Semiring GrB_MAX_MIN_SEMIRING_INT8; +extern GrB_Semiring GrB_MAX_MIN_SEMIRING_INT16; +extern GrB_Semiring GrB_MAX_MIN_SEMIRING_INT32; +extern GrB_Semiring GrB_MAX_MIN_SEMIRING_INT64; +extern GrB_Semiring GrB_MAX_MIN_SEMIRING_UINT8; +extern GrB_Semiring GrB_MAX_MIN_SEMIRING_UINT16; +extern GrB_Semiring GrB_MAX_MIN_SEMIRING_UINT32; +extern GrB_Semiring GrB_MAX_MIN_SEMIRING_UINT64; +extern GrB_Semiring GrB_MAX_PLUS_SEMIRING_FP32; +extern GrB_Semiring GrB_MAX_PLUS_SEMIRING_FP64; +extern GrB_Semiring GrB_MAX_PLUS_SEMIRING_INT8; +extern GrB_Semiring GrB_MAX_PLUS_SEMIRING_INT16; +extern GrB_Semiring GrB_MAX_PLUS_SEMIRING_INT32; +extern GrB_Semiring GrB_MAX_PLUS_SEMIRING_INT64; +extern GrB_Semiring GrB_MAX_PLUS_SEMIRING_UINT8; +extern GrB_Semiring GrB_MAX_PLUS_SEMIRING_UINT16; +extern GrB_Semiring GrB_MAX_PLUS_SEMIRING_UINT32; +extern GrB_Semiring GrB_MAX_PLUS_SEMIRING_UINT64; +extern GrB_Semiring GrB_MAX_SECOND_SEMIRING_FP32; +extern GrB_Semiring GrB_MAX_SECOND_SEMIRING_FP64; +extern GrB_Semiring GrB_MAX_SECOND_SEMIRING_INT8; +extern GrB_Semiring GrB_MAX_SECOND_SEMIRING_INT16; +extern GrB_Semiring GrB_MAX_SECOND_SEMIRING_INT32; +extern GrB_Semiring GrB_MAX_SECOND_SEMIRING_INT64; +extern GrB_Semiring GrB_MAX_SECOND_SEMIRING_UINT8; +extern GrB_Semiring GrB_MAX_SECOND_SEMIRING_UINT16; +extern GrB_Semiring GrB_MAX_SECOND_SEMIRING_UINT32; +extern GrB_Semiring GrB_MAX_SECOND_SEMIRING_UINT64; +extern GrB_Semiring GrB_MAX_TIMES_SEMIRING_FP32; +extern GrB_Semiring GrB_MAX_TIMES_SEMIRING_FP64; +extern GrB_Semiring GrB_MAX_TIMES_SEMIRING_INT8; +extern GrB_Semiring GrB_MAX_TIMES_SEMIRING_INT16; +extern GrB_Semiring GrB_MAX_TIMES_SEMIRING_INT32; +extern GrB_Semiring GrB_MAX_TIMES_SEMIRING_INT64; +extern GrB_Semiring GrB_MAX_TIMES_SEMIRING_UINT8; +extern GrB_Semiring GrB_MAX_TIMES_SEMIRING_UINT16; +extern GrB_Semiring GrB_MAX_TIMES_SEMIRING_UINT32; +extern GrB_Semiring GrB_MAX_TIMES_SEMIRING_UINT64; +extern GrB_Semiring GrB_MIN_FIRST_SEMIRING_FP32; +extern GrB_Semiring GrB_MIN_FIRST_SEMIRING_FP64; +extern GrB_Semiring GrB_MIN_FIRST_SEMIRING_INT8; +extern GrB_Semiring GrB_MIN_FIRST_SEMIRING_INT16; +extern GrB_Semiring GrB_MIN_FIRST_SEMIRING_INT32; +extern GrB_Semiring GrB_MIN_FIRST_SEMIRING_INT64; +extern GrB_Semiring GrB_MIN_FIRST_SEMIRING_UINT8; +extern GrB_Semiring GrB_MIN_FIRST_SEMIRING_UINT16; +extern GrB_Semiring GrB_MIN_FIRST_SEMIRING_UINT32; +extern GrB_Semiring GrB_MIN_FIRST_SEMIRING_UINT64; +extern GrB_Semiring GrB_MIN_MAX_SEMIRING_FP32; +extern GrB_Semiring GrB_MIN_MAX_SEMIRING_FP64; +extern GrB_Semiring GrB_MIN_MAX_SEMIRING_INT8; +extern GrB_Semiring GrB_MIN_MAX_SEMIRING_INT16; +extern GrB_Semiring GrB_MIN_MAX_SEMIRING_INT32; +extern GrB_Semiring GrB_MIN_MAX_SEMIRING_INT64; +extern GrB_Semiring GrB_MIN_MAX_SEMIRING_UINT8; +extern GrB_Semiring GrB_MIN_MAX_SEMIRING_UINT16; +extern GrB_Semiring GrB_MIN_MAX_SEMIRING_UINT32; +extern GrB_Semiring GrB_MIN_MAX_SEMIRING_UINT64; +extern GrB_Semiring GrB_MIN_PLUS_SEMIRING_FP32; +extern GrB_Semiring GrB_MIN_PLUS_SEMIRING_FP64; +extern GrB_Semiring GrB_MIN_PLUS_SEMIRING_INT8; +extern GrB_Semiring GrB_MIN_PLUS_SEMIRING_INT16; +extern GrB_Semiring GrB_MIN_PLUS_SEMIRING_INT32; +extern GrB_Semiring GrB_MIN_PLUS_SEMIRING_INT64; +extern GrB_Semiring GrB_MIN_PLUS_SEMIRING_UINT8; +extern GrB_Semiring GrB_MIN_PLUS_SEMIRING_UINT16; +extern GrB_Semiring GrB_MIN_PLUS_SEMIRING_UINT32; +extern GrB_Semiring GrB_MIN_PLUS_SEMIRING_UINT64; +extern GrB_Semiring GrB_MIN_SECOND_SEMIRING_FP32; +extern GrB_Semiring GrB_MIN_SECOND_SEMIRING_FP64; +extern GrB_Semiring GrB_MIN_SECOND_SEMIRING_INT8; +extern GrB_Semiring GrB_MIN_SECOND_SEMIRING_INT16; +extern GrB_Semiring GrB_MIN_SECOND_SEMIRING_INT32; +extern GrB_Semiring GrB_MIN_SECOND_SEMIRING_INT64; +extern GrB_Semiring GrB_MIN_SECOND_SEMIRING_UINT8; +extern GrB_Semiring GrB_MIN_SECOND_SEMIRING_UINT16; +extern GrB_Semiring GrB_MIN_SECOND_SEMIRING_UINT32; +extern GrB_Semiring GrB_MIN_SECOND_SEMIRING_UINT64; +extern GrB_Semiring GrB_MIN_TIMES_SEMIRING_FP32; +extern GrB_Semiring GrB_MIN_TIMES_SEMIRING_FP64; +extern GrB_Semiring GrB_MIN_TIMES_SEMIRING_INT8; +extern GrB_Semiring GrB_MIN_TIMES_SEMIRING_INT16; +extern GrB_Semiring GrB_MIN_TIMES_SEMIRING_INT32; +extern GrB_Semiring GrB_MIN_TIMES_SEMIRING_INT64; +extern GrB_Semiring GrB_MIN_TIMES_SEMIRING_UINT8; +extern GrB_Semiring GrB_MIN_TIMES_SEMIRING_UINT16; +extern GrB_Semiring GrB_MIN_TIMES_SEMIRING_UINT32; +extern GrB_Semiring GrB_MIN_TIMES_SEMIRING_UINT64; +extern GrB_Semiring GrB_PLUS_MIN_SEMIRING_FP32; +extern GrB_Semiring GrB_PLUS_MIN_SEMIRING_FP64; +extern GrB_Semiring GrB_PLUS_MIN_SEMIRING_INT8; +extern GrB_Semiring GrB_PLUS_MIN_SEMIRING_INT16; +extern GrB_Semiring GrB_PLUS_MIN_SEMIRING_INT32; +extern GrB_Semiring GrB_PLUS_MIN_SEMIRING_INT64; +extern GrB_Semiring GrB_PLUS_MIN_SEMIRING_UINT8; +extern GrB_Semiring GrB_PLUS_MIN_SEMIRING_UINT16; +extern GrB_Semiring GrB_PLUS_MIN_SEMIRING_UINT32; +extern GrB_Semiring GrB_PLUS_MIN_SEMIRING_UINT64; +extern GrB_Semiring GrB_PLUS_TIMES_SEMIRING_FP32; +extern GrB_Semiring GrB_PLUS_TIMES_SEMIRING_FP64; +extern GrB_Semiring GrB_PLUS_TIMES_SEMIRING_INT8; +extern GrB_Semiring GrB_PLUS_TIMES_SEMIRING_INT16; +extern GrB_Semiring GrB_PLUS_TIMES_SEMIRING_INT32; +extern GrB_Semiring GrB_PLUS_TIMES_SEMIRING_INT64; +extern GrB_Semiring GrB_PLUS_TIMES_SEMIRING_UINT8; +extern GrB_Semiring GrB_PLUS_TIMES_SEMIRING_UINT16; +extern GrB_Semiring GrB_PLUS_TIMES_SEMIRING_UINT32; +extern GrB_Semiring GrB_PLUS_TIMES_SEMIRING_UINT64; +extern GrB_Type GrB_BOOL; +extern GrB_Type GrB_FP32; +extern GrB_Type GrB_FP64; +extern GrB_Type GrB_INT8; +extern GrB_Type GrB_INT16; +extern GrB_Type GrB_INT32; +extern GrB_Type GrB_INT64; +extern GrB_Type GrB_UINT8; +extern GrB_Type GrB_UINT16; +extern GrB_Type GrB_UINT32; +extern GrB_Type GrB_UINT64; +extern GrB_UnaryOp GrB_ABS_BOOL; +extern GrB_UnaryOp GrB_ABS_FP32; +extern GrB_UnaryOp GrB_ABS_FP64; +extern GrB_UnaryOp GrB_ABS_INT8; +extern GrB_UnaryOp GrB_ABS_INT16; +extern GrB_UnaryOp GrB_ABS_INT32; +extern GrB_UnaryOp GrB_ABS_INT64; +extern GrB_UnaryOp GrB_ABS_UINT8; +extern GrB_UnaryOp GrB_ABS_UINT16; +extern GrB_UnaryOp GrB_ABS_UINT32; +extern GrB_UnaryOp GrB_ABS_UINT64; +extern GrB_UnaryOp GrB_AINV_BOOL; +extern GrB_UnaryOp GrB_AINV_FP32; +extern GrB_UnaryOp GrB_AINV_FP64; +extern GrB_UnaryOp GrB_AINV_INT8; +extern GrB_UnaryOp GrB_AINV_INT16; +extern GrB_UnaryOp GrB_AINV_INT32; +extern GrB_UnaryOp GrB_AINV_INT64; +extern GrB_UnaryOp GrB_AINV_UINT8; +extern GrB_UnaryOp GrB_AINV_UINT16; +extern GrB_UnaryOp GrB_AINV_UINT32; +extern GrB_UnaryOp GrB_AINV_UINT64; +extern GrB_UnaryOp GrB_BNOT_INT8; +extern GrB_UnaryOp GrB_BNOT_INT16; +extern GrB_UnaryOp GrB_BNOT_INT32; +extern GrB_UnaryOp GrB_BNOT_INT64; +extern GrB_UnaryOp GrB_BNOT_UINT8; +extern GrB_UnaryOp GrB_BNOT_UINT16; +extern GrB_UnaryOp GrB_BNOT_UINT32; +extern GrB_UnaryOp GrB_BNOT_UINT64; +extern GrB_UnaryOp GrB_IDENTITY_BOOL; +extern GrB_UnaryOp GrB_IDENTITY_FP32; +extern GrB_UnaryOp GrB_IDENTITY_FP64; +extern GrB_UnaryOp GrB_IDENTITY_INT8; +extern GrB_UnaryOp GrB_IDENTITY_INT16; +extern GrB_UnaryOp GrB_IDENTITY_INT32; +extern GrB_UnaryOp GrB_IDENTITY_INT64; +extern GrB_UnaryOp GrB_IDENTITY_UINT8; +extern GrB_UnaryOp GrB_IDENTITY_UINT16; +extern GrB_UnaryOp GrB_IDENTITY_UINT32; +extern GrB_UnaryOp GrB_IDENTITY_UINT64; +extern GrB_UnaryOp GrB_LNOT; +extern GrB_UnaryOp GrB_MINV_BOOL; +extern GrB_UnaryOp GrB_MINV_FP32; +extern GrB_UnaryOp GrB_MINV_FP64; +extern GrB_UnaryOp GrB_MINV_INT8; +extern GrB_UnaryOp GrB_MINV_INT16; +extern GrB_UnaryOp GrB_MINV_INT32; +extern GrB_UnaryOp GrB_MINV_INT64; +extern GrB_UnaryOp GrB_MINV_UINT8; +extern GrB_UnaryOp GrB_MINV_UINT16; +extern GrB_UnaryOp GrB_MINV_UINT32; +extern GrB_UnaryOp GrB_MINV_UINT64; + +/* GrB objects (extended) */ +extern GrB_BinaryOp GxB_ANY_BOOL; +extern GrB_BinaryOp GxB_ANY_FC32; +extern GrB_BinaryOp GxB_ANY_FC64; +extern GrB_BinaryOp GxB_ANY_FP32; +extern GrB_BinaryOp GxB_ANY_FP64; +extern GrB_BinaryOp GxB_ANY_INT8; +extern GrB_BinaryOp GxB_ANY_INT16; +extern GrB_BinaryOp GxB_ANY_INT32; +extern GrB_BinaryOp GxB_ANY_INT64; +extern GrB_BinaryOp GxB_ANY_UINT8; +extern GrB_BinaryOp GxB_ANY_UINT16; +extern GrB_BinaryOp GxB_ANY_UINT32; +extern GrB_BinaryOp GxB_ANY_UINT64; +extern GrB_BinaryOp GxB_ATAN2_FP32; +extern GrB_BinaryOp GxB_ATAN2_FP64; +extern GrB_BinaryOp GxB_BCLR_INT8; +extern GrB_BinaryOp GxB_BCLR_INT16; +extern GrB_BinaryOp GxB_BCLR_INT32; +extern GrB_BinaryOp GxB_BCLR_INT64; +extern GrB_BinaryOp GxB_BCLR_UINT8; +extern GrB_BinaryOp GxB_BCLR_UINT16; +extern GrB_BinaryOp GxB_BCLR_UINT32; +extern GrB_BinaryOp GxB_BCLR_UINT64; +extern GrB_BinaryOp GxB_BGET_INT8; +extern GrB_BinaryOp GxB_BGET_INT16; +extern GrB_BinaryOp GxB_BGET_INT32; +extern GrB_BinaryOp GxB_BGET_INT64; +extern GrB_BinaryOp GxB_BGET_UINT8; +extern GrB_BinaryOp GxB_BGET_UINT16; +extern GrB_BinaryOp GxB_BGET_UINT32; +extern GrB_BinaryOp GxB_BGET_UINT64; +extern GrB_BinaryOp GxB_BSET_INT8; +extern GrB_BinaryOp GxB_BSET_INT16; +extern GrB_BinaryOp GxB_BSET_INT32; +extern GrB_BinaryOp GxB_BSET_INT64; +extern GrB_BinaryOp GxB_BSET_UINT8; +extern GrB_BinaryOp GxB_BSET_UINT16; +extern GrB_BinaryOp GxB_BSET_UINT32; +extern GrB_BinaryOp GxB_BSET_UINT64; +extern GrB_BinaryOp GxB_BSHIFT_INT8; +extern GrB_BinaryOp GxB_BSHIFT_INT16; +extern GrB_BinaryOp GxB_BSHIFT_INT32; +extern GrB_BinaryOp GxB_BSHIFT_INT64; +extern GrB_BinaryOp GxB_BSHIFT_UINT8; +extern GrB_BinaryOp GxB_BSHIFT_UINT16; +extern GrB_BinaryOp GxB_BSHIFT_UINT32; +extern GrB_BinaryOp GxB_BSHIFT_UINT64; +extern GrB_BinaryOp GxB_CMPLX_FP32; +extern GrB_BinaryOp GxB_CMPLX_FP64; +extern GrB_BinaryOp GxB_COPYSIGN_FP32; +extern GrB_BinaryOp GxB_COPYSIGN_FP64; +extern GrB_BinaryOp GxB_DIV_FC32; +extern GrB_BinaryOp GxB_DIV_FC64; +extern GrB_BinaryOp GxB_EQ_FC32; +extern GrB_BinaryOp GxB_EQ_FC64; +extern GrB_BinaryOp GxB_FIRSTI1_INT32; +extern GrB_BinaryOp GxB_FIRSTI1_INT64; +extern GrB_BinaryOp GxB_FIRSTI_INT32; +extern GrB_BinaryOp GxB_FIRSTI_INT64; +extern GrB_BinaryOp GxB_FIRSTJ1_INT32; +extern GrB_BinaryOp GxB_FIRSTJ1_INT64; +extern GrB_BinaryOp GxB_FIRSTJ_INT32; +extern GrB_BinaryOp GxB_FIRSTJ_INT64; +extern GrB_BinaryOp GxB_FIRST_FC32; +extern GrB_BinaryOp GxB_FIRST_FC64; +extern GrB_BinaryOp GxB_FMOD_FP32; +extern GrB_BinaryOp GxB_FMOD_FP64; +extern GrB_BinaryOp GxB_HYPOT_FP32; +extern GrB_BinaryOp GxB_HYPOT_FP64; +extern GrB_BinaryOp GxB_IGNORE_DUP; +extern GrB_BinaryOp GxB_ISEQ_BOOL; +extern GrB_BinaryOp GxB_ISEQ_FC32; +extern GrB_BinaryOp GxB_ISEQ_FC64; +extern GrB_BinaryOp GxB_ISEQ_FP32; +extern GrB_BinaryOp GxB_ISEQ_FP64; +extern GrB_BinaryOp GxB_ISEQ_INT8; +extern GrB_BinaryOp GxB_ISEQ_INT16; +extern GrB_BinaryOp GxB_ISEQ_INT32; +extern GrB_BinaryOp GxB_ISEQ_INT64; +extern GrB_BinaryOp GxB_ISEQ_UINT8; +extern GrB_BinaryOp GxB_ISEQ_UINT16; +extern GrB_BinaryOp GxB_ISEQ_UINT32; +extern GrB_BinaryOp GxB_ISEQ_UINT64; +extern GrB_BinaryOp GxB_ISGE_BOOL; +extern GrB_BinaryOp GxB_ISGE_FP32; +extern GrB_BinaryOp GxB_ISGE_FP64; +extern GrB_BinaryOp GxB_ISGE_INT8; +extern GrB_BinaryOp GxB_ISGE_INT16; +extern GrB_BinaryOp GxB_ISGE_INT32; +extern GrB_BinaryOp GxB_ISGE_INT64; +extern GrB_BinaryOp GxB_ISGE_UINT8; +extern GrB_BinaryOp GxB_ISGE_UINT16; +extern GrB_BinaryOp GxB_ISGE_UINT32; +extern GrB_BinaryOp GxB_ISGE_UINT64; +extern GrB_BinaryOp GxB_ISGT_BOOL; +extern GrB_BinaryOp GxB_ISGT_FP32; +extern GrB_BinaryOp GxB_ISGT_FP64; +extern GrB_BinaryOp GxB_ISGT_INT8; +extern GrB_BinaryOp GxB_ISGT_INT16; +extern GrB_BinaryOp GxB_ISGT_INT32; +extern GrB_BinaryOp GxB_ISGT_INT64; +extern GrB_BinaryOp GxB_ISGT_UINT8; +extern GrB_BinaryOp GxB_ISGT_UINT16; +extern GrB_BinaryOp GxB_ISGT_UINT32; +extern GrB_BinaryOp GxB_ISGT_UINT64; +extern GrB_BinaryOp GxB_ISLE_BOOL; +extern GrB_BinaryOp GxB_ISLE_FP32; +extern GrB_BinaryOp GxB_ISLE_FP64; +extern GrB_BinaryOp GxB_ISLE_INT8; +extern GrB_BinaryOp GxB_ISLE_INT16; +extern GrB_BinaryOp GxB_ISLE_INT32; +extern GrB_BinaryOp GxB_ISLE_INT64; +extern GrB_BinaryOp GxB_ISLE_UINT8; +extern GrB_BinaryOp GxB_ISLE_UINT16; +extern GrB_BinaryOp GxB_ISLE_UINT32; +extern GrB_BinaryOp GxB_ISLE_UINT64; +extern GrB_BinaryOp GxB_ISLT_BOOL; +extern GrB_BinaryOp GxB_ISLT_FP32; +extern GrB_BinaryOp GxB_ISLT_FP64; +extern GrB_BinaryOp GxB_ISLT_INT8; +extern GrB_BinaryOp GxB_ISLT_INT16; +extern GrB_BinaryOp GxB_ISLT_INT32; +extern GrB_BinaryOp GxB_ISLT_INT64; +extern GrB_BinaryOp GxB_ISLT_UINT8; +extern GrB_BinaryOp GxB_ISLT_UINT16; +extern GrB_BinaryOp GxB_ISLT_UINT32; +extern GrB_BinaryOp GxB_ISLT_UINT64; +extern GrB_BinaryOp GxB_ISNE_BOOL; +extern GrB_BinaryOp GxB_ISNE_FC32; +extern GrB_BinaryOp GxB_ISNE_FC64; +extern GrB_BinaryOp GxB_ISNE_FP32; +extern GrB_BinaryOp GxB_ISNE_FP64; +extern GrB_BinaryOp GxB_ISNE_INT8; +extern GrB_BinaryOp GxB_ISNE_INT16; +extern GrB_BinaryOp GxB_ISNE_INT32; +extern GrB_BinaryOp GxB_ISNE_INT64; +extern GrB_BinaryOp GxB_ISNE_UINT8; +extern GrB_BinaryOp GxB_ISNE_UINT16; +extern GrB_BinaryOp GxB_ISNE_UINT32; +extern GrB_BinaryOp GxB_ISNE_UINT64; +extern GrB_BinaryOp GxB_LAND_BOOL; +extern GrB_BinaryOp GxB_LAND_FP32; +extern GrB_BinaryOp GxB_LAND_FP64; +extern GrB_BinaryOp GxB_LAND_INT8; +extern GrB_BinaryOp GxB_LAND_INT16; +extern GrB_BinaryOp GxB_LAND_INT32; +extern GrB_BinaryOp GxB_LAND_INT64; +extern GrB_BinaryOp GxB_LAND_UINT8; +extern GrB_BinaryOp GxB_LAND_UINT16; +extern GrB_BinaryOp GxB_LAND_UINT32; +extern GrB_BinaryOp GxB_LAND_UINT64; +extern GrB_BinaryOp GxB_LDEXP_FP32; +extern GrB_BinaryOp GxB_LDEXP_FP64; +extern GrB_BinaryOp GxB_LOR_BOOL; +extern GrB_BinaryOp GxB_LOR_FP32; +extern GrB_BinaryOp GxB_LOR_FP64; +extern GrB_BinaryOp GxB_LOR_INT8; +extern GrB_BinaryOp GxB_LOR_INT16; +extern GrB_BinaryOp GxB_LOR_INT32; +extern GrB_BinaryOp GxB_LOR_INT64; +extern GrB_BinaryOp GxB_LOR_UINT8; +extern GrB_BinaryOp GxB_LOR_UINT16; +extern GrB_BinaryOp GxB_LOR_UINT32; +extern GrB_BinaryOp GxB_LOR_UINT64; +extern GrB_BinaryOp GxB_LXOR_BOOL; +extern GrB_BinaryOp GxB_LXOR_FP32; +extern GrB_BinaryOp GxB_LXOR_FP64; +extern GrB_BinaryOp GxB_LXOR_INT8; +extern GrB_BinaryOp GxB_LXOR_INT16; +extern GrB_BinaryOp GxB_LXOR_INT32; +extern GrB_BinaryOp GxB_LXOR_INT64; +extern GrB_BinaryOp GxB_LXOR_UINT8; +extern GrB_BinaryOp GxB_LXOR_UINT16; +extern GrB_BinaryOp GxB_LXOR_UINT32; +extern GrB_BinaryOp GxB_LXOR_UINT64; +extern GrB_BinaryOp GxB_MINUS_FC32; +extern GrB_BinaryOp GxB_MINUS_FC64; +extern GrB_BinaryOp GxB_NE_FC32; +extern GrB_BinaryOp GxB_NE_FC64; +extern GrB_BinaryOp GxB_ONEB_FC32; +extern GrB_BinaryOp GxB_ONEB_FC64; +extern GrB_BinaryOp GxB_PAIR_BOOL; +extern GrB_BinaryOp GxB_PAIR_FC32; +extern GrB_BinaryOp GxB_PAIR_FC64; +extern GrB_BinaryOp GxB_PAIR_FP32; +extern GrB_BinaryOp GxB_PAIR_FP64; +extern GrB_BinaryOp GxB_PAIR_INT8; +extern GrB_BinaryOp GxB_PAIR_INT16; +extern GrB_BinaryOp GxB_PAIR_INT32; +extern GrB_BinaryOp GxB_PAIR_INT64; +extern GrB_BinaryOp GxB_PAIR_UINT8; +extern GrB_BinaryOp GxB_PAIR_UINT16; +extern GrB_BinaryOp GxB_PAIR_UINT32; +extern GrB_BinaryOp GxB_PAIR_UINT64; +extern GrB_BinaryOp GxB_PLUS_FC32; +extern GrB_BinaryOp GxB_PLUS_FC64; +extern GrB_BinaryOp GxB_POW_BOOL; +extern GrB_BinaryOp GxB_POW_FC32; +extern GrB_BinaryOp GxB_POW_FC64; +extern GrB_BinaryOp GxB_POW_FP32; +extern GrB_BinaryOp GxB_POW_FP64; +extern GrB_BinaryOp GxB_POW_INT8; +extern GrB_BinaryOp GxB_POW_INT16; +extern GrB_BinaryOp GxB_POW_INT32; +extern GrB_BinaryOp GxB_POW_INT64; +extern GrB_BinaryOp GxB_POW_UINT8; +extern GrB_BinaryOp GxB_POW_UINT16; +extern GrB_BinaryOp GxB_POW_UINT32; +extern GrB_BinaryOp GxB_POW_UINT64; +extern GrB_BinaryOp GxB_RDIV_BOOL; +extern GrB_BinaryOp GxB_RDIV_FC32; +extern GrB_BinaryOp GxB_RDIV_FC64; +extern GrB_BinaryOp GxB_RDIV_FP32; +extern GrB_BinaryOp GxB_RDIV_FP64; +extern GrB_BinaryOp GxB_RDIV_INT8; +extern GrB_BinaryOp GxB_RDIV_INT16; +extern GrB_BinaryOp GxB_RDIV_INT32; +extern GrB_BinaryOp GxB_RDIV_INT64; +extern GrB_BinaryOp GxB_RDIV_UINT8; +extern GrB_BinaryOp GxB_RDIV_UINT16; +extern GrB_BinaryOp GxB_RDIV_UINT32; +extern GrB_BinaryOp GxB_RDIV_UINT64; +extern GrB_BinaryOp GxB_REMAINDER_FP32; +extern GrB_BinaryOp GxB_REMAINDER_FP64; +extern GrB_BinaryOp GxB_RMINUS_BOOL; +extern GrB_BinaryOp GxB_RMINUS_FC32; +extern GrB_BinaryOp GxB_RMINUS_FC64; +extern GrB_BinaryOp GxB_RMINUS_FP32; +extern GrB_BinaryOp GxB_RMINUS_FP64; +extern GrB_BinaryOp GxB_RMINUS_INT8; +extern GrB_BinaryOp GxB_RMINUS_INT16; +extern GrB_BinaryOp GxB_RMINUS_INT32; +extern GrB_BinaryOp GxB_RMINUS_INT64; +extern GrB_BinaryOp GxB_RMINUS_UINT8; +extern GrB_BinaryOp GxB_RMINUS_UINT16; +extern GrB_BinaryOp GxB_RMINUS_UINT32; +extern GrB_BinaryOp GxB_RMINUS_UINT64; +extern GrB_BinaryOp GxB_SECONDI1_INT32; +extern GrB_BinaryOp GxB_SECONDI1_INT64; +extern GrB_BinaryOp GxB_SECONDI_INT32; +extern GrB_BinaryOp GxB_SECONDI_INT64; +extern GrB_BinaryOp GxB_SECONDJ1_INT32; +extern GrB_BinaryOp GxB_SECONDJ1_INT64; +extern GrB_BinaryOp GxB_SECONDJ_INT32; +extern GrB_BinaryOp GxB_SECONDJ_INT64; +extern GrB_BinaryOp GxB_SECOND_FC32; +extern GrB_BinaryOp GxB_SECOND_FC64; +extern GrB_BinaryOp GxB_TIMES_FC32; +extern GrB_BinaryOp GxB_TIMES_FC64; +extern GrB_IndexUnaryOp GxB_VALUEEQ_FC32; +extern GrB_IndexUnaryOp GxB_VALUEEQ_FC64; +extern GrB_IndexUnaryOp GxB_VALUENE_FC32; +extern GrB_IndexUnaryOp GxB_VALUENE_FC64; +extern GrB_Monoid GxB_ANY_BOOL_MONOID; +extern GrB_Monoid GxB_ANY_FC32_MONOID; +extern GrB_Monoid GxB_ANY_FC64_MONOID; +extern GrB_Monoid GxB_ANY_FP32_MONOID; +extern GrB_Monoid GxB_ANY_FP64_MONOID; +extern GrB_Monoid GxB_ANY_INT8_MONOID; +extern GrB_Monoid GxB_ANY_INT16_MONOID; +extern GrB_Monoid GxB_ANY_INT32_MONOID; +extern GrB_Monoid GxB_ANY_INT64_MONOID; +extern GrB_Monoid GxB_ANY_UINT8_MONOID; +extern GrB_Monoid GxB_ANY_UINT16_MONOID; +extern GrB_Monoid GxB_ANY_UINT32_MONOID; +extern GrB_Monoid GxB_ANY_UINT64_MONOID; +extern GrB_Monoid GxB_BAND_UINT8_MONOID; +extern GrB_Monoid GxB_BAND_UINT16_MONOID; +extern GrB_Monoid GxB_BAND_UINT32_MONOID; +extern GrB_Monoid GxB_BAND_UINT64_MONOID; +extern GrB_Monoid GxB_BOR_UINT8_MONOID; +extern GrB_Monoid GxB_BOR_UINT16_MONOID; +extern GrB_Monoid GxB_BOR_UINT32_MONOID; +extern GrB_Monoid GxB_BOR_UINT64_MONOID; +extern GrB_Monoid GxB_BXNOR_UINT8_MONOID; +extern GrB_Monoid GxB_BXNOR_UINT16_MONOID; +extern GrB_Monoid GxB_BXNOR_UINT32_MONOID; +extern GrB_Monoid GxB_BXNOR_UINT64_MONOID; +extern GrB_Monoid GxB_BXOR_UINT8_MONOID; +extern GrB_Monoid GxB_BXOR_UINT16_MONOID; +extern GrB_Monoid GxB_BXOR_UINT32_MONOID; +extern GrB_Monoid GxB_BXOR_UINT64_MONOID; +extern GrB_Monoid GxB_EQ_BOOL_MONOID; +extern GrB_Monoid GxB_PLUS_FC32_MONOID; +extern GrB_Monoid GxB_PLUS_FC64_MONOID; +extern GrB_Monoid GxB_TIMES_FC32_MONOID; +extern GrB_Monoid GxB_TIMES_FC64_MONOID; +extern GrB_Semiring GxB_ANY_DIV_FC32; +extern GrB_Semiring GxB_ANY_DIV_FC64; +extern GrB_Semiring GxB_ANY_DIV_FP32; +extern GrB_Semiring GxB_ANY_DIV_FP64; +extern GrB_Semiring GxB_ANY_DIV_INT8; +extern GrB_Semiring GxB_ANY_DIV_INT16; +extern GrB_Semiring GxB_ANY_DIV_INT32; +extern GrB_Semiring GxB_ANY_DIV_INT64; +extern GrB_Semiring GxB_ANY_DIV_UINT8; +extern GrB_Semiring GxB_ANY_DIV_UINT16; +extern GrB_Semiring GxB_ANY_DIV_UINT32; +extern GrB_Semiring GxB_ANY_DIV_UINT64; +extern GrB_Semiring GxB_ANY_EQ_BOOL; +extern GrB_Semiring GxB_ANY_EQ_FP32; +extern GrB_Semiring GxB_ANY_EQ_FP64; +extern GrB_Semiring GxB_ANY_EQ_INT8; +extern GrB_Semiring GxB_ANY_EQ_INT16; +extern GrB_Semiring GxB_ANY_EQ_INT32; +extern GrB_Semiring GxB_ANY_EQ_INT64; +extern GrB_Semiring GxB_ANY_EQ_UINT8; +extern GrB_Semiring GxB_ANY_EQ_UINT16; +extern GrB_Semiring GxB_ANY_EQ_UINT32; +extern GrB_Semiring GxB_ANY_EQ_UINT64; +extern GrB_Semiring GxB_ANY_FIRSTI1_INT32; +extern GrB_Semiring GxB_ANY_FIRSTI1_INT64; +extern GrB_Semiring GxB_ANY_FIRSTI_INT32; +extern GrB_Semiring GxB_ANY_FIRSTI_INT64; +extern GrB_Semiring GxB_ANY_FIRSTJ1_INT32; +extern GrB_Semiring GxB_ANY_FIRSTJ1_INT64; +extern GrB_Semiring GxB_ANY_FIRSTJ_INT32; +extern GrB_Semiring GxB_ANY_FIRSTJ_INT64; +extern GrB_Semiring GxB_ANY_FIRST_BOOL; +extern GrB_Semiring GxB_ANY_FIRST_FC32; +extern GrB_Semiring GxB_ANY_FIRST_FC64; +extern GrB_Semiring GxB_ANY_FIRST_FP32; +extern GrB_Semiring GxB_ANY_FIRST_FP64; +extern GrB_Semiring GxB_ANY_FIRST_INT8; +extern GrB_Semiring GxB_ANY_FIRST_INT16; +extern GrB_Semiring GxB_ANY_FIRST_INT32; +extern GrB_Semiring GxB_ANY_FIRST_INT64; +extern GrB_Semiring GxB_ANY_FIRST_UINT8; +extern GrB_Semiring GxB_ANY_FIRST_UINT16; +extern GrB_Semiring GxB_ANY_FIRST_UINT32; +extern GrB_Semiring GxB_ANY_FIRST_UINT64; +extern GrB_Semiring GxB_ANY_GE_BOOL; +extern GrB_Semiring GxB_ANY_GE_FP32; +extern GrB_Semiring GxB_ANY_GE_FP64; +extern GrB_Semiring GxB_ANY_GE_INT8; +extern GrB_Semiring GxB_ANY_GE_INT16; +extern GrB_Semiring GxB_ANY_GE_INT32; +extern GrB_Semiring GxB_ANY_GE_INT64; +extern GrB_Semiring GxB_ANY_GE_UINT8; +extern GrB_Semiring GxB_ANY_GE_UINT16; +extern GrB_Semiring GxB_ANY_GE_UINT32; +extern GrB_Semiring GxB_ANY_GE_UINT64; +extern GrB_Semiring GxB_ANY_GT_BOOL; +extern GrB_Semiring GxB_ANY_GT_FP32; +extern GrB_Semiring GxB_ANY_GT_FP64; +extern GrB_Semiring GxB_ANY_GT_INT8; +extern GrB_Semiring GxB_ANY_GT_INT16; +extern GrB_Semiring GxB_ANY_GT_INT32; +extern GrB_Semiring GxB_ANY_GT_INT64; +extern GrB_Semiring GxB_ANY_GT_UINT8; +extern GrB_Semiring GxB_ANY_GT_UINT16; +extern GrB_Semiring GxB_ANY_GT_UINT32; +extern GrB_Semiring GxB_ANY_GT_UINT64; +extern GrB_Semiring GxB_ANY_ISEQ_FP32; +extern GrB_Semiring GxB_ANY_ISEQ_FP64; +extern GrB_Semiring GxB_ANY_ISEQ_INT8; +extern GrB_Semiring GxB_ANY_ISEQ_INT16; +extern GrB_Semiring GxB_ANY_ISEQ_INT32; +extern GrB_Semiring GxB_ANY_ISEQ_INT64; +extern GrB_Semiring GxB_ANY_ISEQ_UINT8; +extern GrB_Semiring GxB_ANY_ISEQ_UINT16; +extern GrB_Semiring GxB_ANY_ISEQ_UINT32; +extern GrB_Semiring GxB_ANY_ISEQ_UINT64; +extern GrB_Semiring GxB_ANY_ISGE_FP32; +extern GrB_Semiring GxB_ANY_ISGE_FP64; +extern GrB_Semiring GxB_ANY_ISGE_INT8; +extern GrB_Semiring GxB_ANY_ISGE_INT16; +extern GrB_Semiring GxB_ANY_ISGE_INT32; +extern GrB_Semiring GxB_ANY_ISGE_INT64; +extern GrB_Semiring GxB_ANY_ISGE_UINT8; +extern GrB_Semiring GxB_ANY_ISGE_UINT16; +extern GrB_Semiring GxB_ANY_ISGE_UINT32; +extern GrB_Semiring GxB_ANY_ISGE_UINT64; +extern GrB_Semiring GxB_ANY_ISGT_FP32; +extern GrB_Semiring GxB_ANY_ISGT_FP64; +extern GrB_Semiring GxB_ANY_ISGT_INT8; +extern GrB_Semiring GxB_ANY_ISGT_INT16; +extern GrB_Semiring GxB_ANY_ISGT_INT32; +extern GrB_Semiring GxB_ANY_ISGT_INT64; +extern GrB_Semiring GxB_ANY_ISGT_UINT8; +extern GrB_Semiring GxB_ANY_ISGT_UINT16; +extern GrB_Semiring GxB_ANY_ISGT_UINT32; +extern GrB_Semiring GxB_ANY_ISGT_UINT64; +extern GrB_Semiring GxB_ANY_ISLE_FP32; +extern GrB_Semiring GxB_ANY_ISLE_FP64; +extern GrB_Semiring GxB_ANY_ISLE_INT8; +extern GrB_Semiring GxB_ANY_ISLE_INT16; +extern GrB_Semiring GxB_ANY_ISLE_INT32; +extern GrB_Semiring GxB_ANY_ISLE_INT64; +extern GrB_Semiring GxB_ANY_ISLE_UINT8; +extern GrB_Semiring GxB_ANY_ISLE_UINT16; +extern GrB_Semiring GxB_ANY_ISLE_UINT32; +extern GrB_Semiring GxB_ANY_ISLE_UINT64; +extern GrB_Semiring GxB_ANY_ISLT_FP32; +extern GrB_Semiring GxB_ANY_ISLT_FP64; +extern GrB_Semiring GxB_ANY_ISLT_INT8; +extern GrB_Semiring GxB_ANY_ISLT_INT16; +extern GrB_Semiring GxB_ANY_ISLT_INT32; +extern GrB_Semiring GxB_ANY_ISLT_INT64; +extern GrB_Semiring GxB_ANY_ISLT_UINT8; +extern GrB_Semiring GxB_ANY_ISLT_UINT16; +extern GrB_Semiring GxB_ANY_ISLT_UINT32; +extern GrB_Semiring GxB_ANY_ISLT_UINT64; +extern GrB_Semiring GxB_ANY_ISNE_FP32; +extern GrB_Semiring GxB_ANY_ISNE_FP64; +extern GrB_Semiring GxB_ANY_ISNE_INT8; +extern GrB_Semiring GxB_ANY_ISNE_INT16; +extern GrB_Semiring GxB_ANY_ISNE_INT32; +extern GrB_Semiring GxB_ANY_ISNE_INT64; +extern GrB_Semiring GxB_ANY_ISNE_UINT8; +extern GrB_Semiring GxB_ANY_ISNE_UINT16; +extern GrB_Semiring GxB_ANY_ISNE_UINT32; +extern GrB_Semiring GxB_ANY_ISNE_UINT64; +extern GrB_Semiring GxB_ANY_LAND_BOOL; +extern GrB_Semiring GxB_ANY_LAND_FP32; +extern GrB_Semiring GxB_ANY_LAND_FP64; +extern GrB_Semiring GxB_ANY_LAND_INT8; +extern GrB_Semiring GxB_ANY_LAND_INT16; +extern GrB_Semiring GxB_ANY_LAND_INT32; +extern GrB_Semiring GxB_ANY_LAND_INT64; +extern GrB_Semiring GxB_ANY_LAND_UINT8; +extern GrB_Semiring GxB_ANY_LAND_UINT16; +extern GrB_Semiring GxB_ANY_LAND_UINT32; +extern GrB_Semiring GxB_ANY_LAND_UINT64; +extern GrB_Semiring GxB_ANY_LE_BOOL; +extern GrB_Semiring GxB_ANY_LE_FP32; +extern GrB_Semiring GxB_ANY_LE_FP64; +extern GrB_Semiring GxB_ANY_LE_INT8; +extern GrB_Semiring GxB_ANY_LE_INT16; +extern GrB_Semiring GxB_ANY_LE_INT32; +extern GrB_Semiring GxB_ANY_LE_INT64; +extern GrB_Semiring GxB_ANY_LE_UINT8; +extern GrB_Semiring GxB_ANY_LE_UINT16; +extern GrB_Semiring GxB_ANY_LE_UINT32; +extern GrB_Semiring GxB_ANY_LE_UINT64; +extern GrB_Semiring GxB_ANY_LOR_BOOL; +extern GrB_Semiring GxB_ANY_LOR_FP32; +extern GrB_Semiring GxB_ANY_LOR_FP64; +extern GrB_Semiring GxB_ANY_LOR_INT8; +extern GrB_Semiring GxB_ANY_LOR_INT16; +extern GrB_Semiring GxB_ANY_LOR_INT32; +extern GrB_Semiring GxB_ANY_LOR_INT64; +extern GrB_Semiring GxB_ANY_LOR_UINT8; +extern GrB_Semiring GxB_ANY_LOR_UINT16; +extern GrB_Semiring GxB_ANY_LOR_UINT32; +extern GrB_Semiring GxB_ANY_LOR_UINT64; +extern GrB_Semiring GxB_ANY_LT_BOOL; +extern GrB_Semiring GxB_ANY_LT_FP32; +extern GrB_Semiring GxB_ANY_LT_FP64; +extern GrB_Semiring GxB_ANY_LT_INT8; +extern GrB_Semiring GxB_ANY_LT_INT16; +extern GrB_Semiring GxB_ANY_LT_INT32; +extern GrB_Semiring GxB_ANY_LT_INT64; +extern GrB_Semiring GxB_ANY_LT_UINT8; +extern GrB_Semiring GxB_ANY_LT_UINT16; +extern GrB_Semiring GxB_ANY_LT_UINT32; +extern GrB_Semiring GxB_ANY_LT_UINT64; +extern GrB_Semiring GxB_ANY_LXOR_BOOL; +extern GrB_Semiring GxB_ANY_LXOR_FP32; +extern GrB_Semiring GxB_ANY_LXOR_FP64; +extern GrB_Semiring GxB_ANY_LXOR_INT8; +extern GrB_Semiring GxB_ANY_LXOR_INT16; +extern GrB_Semiring GxB_ANY_LXOR_INT32; +extern GrB_Semiring GxB_ANY_LXOR_INT64; +extern GrB_Semiring GxB_ANY_LXOR_UINT8; +extern GrB_Semiring GxB_ANY_LXOR_UINT16; +extern GrB_Semiring GxB_ANY_LXOR_UINT32; +extern GrB_Semiring GxB_ANY_LXOR_UINT64; +extern GrB_Semiring GxB_ANY_MAX_FP32; +extern GrB_Semiring GxB_ANY_MAX_FP64; +extern GrB_Semiring GxB_ANY_MAX_INT8; +extern GrB_Semiring GxB_ANY_MAX_INT16; +extern GrB_Semiring GxB_ANY_MAX_INT32; +extern GrB_Semiring GxB_ANY_MAX_INT64; +extern GrB_Semiring GxB_ANY_MAX_UINT8; +extern GrB_Semiring GxB_ANY_MAX_UINT16; +extern GrB_Semiring GxB_ANY_MAX_UINT32; +extern GrB_Semiring GxB_ANY_MAX_UINT64; +extern GrB_Semiring GxB_ANY_MINUS_FC32; +extern GrB_Semiring GxB_ANY_MINUS_FC64; +extern GrB_Semiring GxB_ANY_MINUS_FP32; +extern GrB_Semiring GxB_ANY_MINUS_FP64; +extern GrB_Semiring GxB_ANY_MINUS_INT8; +extern GrB_Semiring GxB_ANY_MINUS_INT16; +extern GrB_Semiring GxB_ANY_MINUS_INT32; +extern GrB_Semiring GxB_ANY_MINUS_INT64; +extern GrB_Semiring GxB_ANY_MINUS_UINT8; +extern GrB_Semiring GxB_ANY_MINUS_UINT16; +extern GrB_Semiring GxB_ANY_MINUS_UINT32; +extern GrB_Semiring GxB_ANY_MINUS_UINT64; +extern GrB_Semiring GxB_ANY_MIN_FP32; +extern GrB_Semiring GxB_ANY_MIN_FP64; +extern GrB_Semiring GxB_ANY_MIN_INT8; +extern GrB_Semiring GxB_ANY_MIN_INT16; +extern GrB_Semiring GxB_ANY_MIN_INT32; +extern GrB_Semiring GxB_ANY_MIN_INT64; +extern GrB_Semiring GxB_ANY_MIN_UINT8; +extern GrB_Semiring GxB_ANY_MIN_UINT16; +extern GrB_Semiring GxB_ANY_MIN_UINT32; +extern GrB_Semiring GxB_ANY_MIN_UINT64; +extern GrB_Semiring GxB_ANY_NE_FP32; +extern GrB_Semiring GxB_ANY_NE_FP64; +extern GrB_Semiring GxB_ANY_NE_INT8; +extern GrB_Semiring GxB_ANY_NE_INT16; +extern GrB_Semiring GxB_ANY_NE_INT32; +extern GrB_Semiring GxB_ANY_NE_INT64; +extern GrB_Semiring GxB_ANY_NE_UINT8; +extern GrB_Semiring GxB_ANY_NE_UINT16; +extern GrB_Semiring GxB_ANY_NE_UINT32; +extern GrB_Semiring GxB_ANY_NE_UINT64; +extern GrB_Semiring GxB_ANY_PAIR_BOOL; +extern GrB_Semiring GxB_ANY_PAIR_FC32; +extern GrB_Semiring GxB_ANY_PAIR_FC64; +extern GrB_Semiring GxB_ANY_PAIR_FP32; +extern GrB_Semiring GxB_ANY_PAIR_FP64; +extern GrB_Semiring GxB_ANY_PAIR_INT8; +extern GrB_Semiring GxB_ANY_PAIR_INT16; +extern GrB_Semiring GxB_ANY_PAIR_INT32; +extern GrB_Semiring GxB_ANY_PAIR_INT64; +extern GrB_Semiring GxB_ANY_PAIR_UINT8; +extern GrB_Semiring GxB_ANY_PAIR_UINT16; +extern GrB_Semiring GxB_ANY_PAIR_UINT32; +extern GrB_Semiring GxB_ANY_PAIR_UINT64; +extern GrB_Semiring GxB_ANY_PLUS_FC32; +extern GrB_Semiring GxB_ANY_PLUS_FC64; +extern GrB_Semiring GxB_ANY_PLUS_FP32; +extern GrB_Semiring GxB_ANY_PLUS_FP64; +extern GrB_Semiring GxB_ANY_PLUS_INT8; +extern GrB_Semiring GxB_ANY_PLUS_INT16; +extern GrB_Semiring GxB_ANY_PLUS_INT32; +extern GrB_Semiring GxB_ANY_PLUS_INT64; +extern GrB_Semiring GxB_ANY_PLUS_UINT8; +extern GrB_Semiring GxB_ANY_PLUS_UINT16; +extern GrB_Semiring GxB_ANY_PLUS_UINT32; +extern GrB_Semiring GxB_ANY_PLUS_UINT64; +extern GrB_Semiring GxB_ANY_RDIV_FC32; +extern GrB_Semiring GxB_ANY_RDIV_FC64; +extern GrB_Semiring GxB_ANY_RDIV_FP32; +extern GrB_Semiring GxB_ANY_RDIV_FP64; +extern GrB_Semiring GxB_ANY_RDIV_INT8; +extern GrB_Semiring GxB_ANY_RDIV_INT16; +extern GrB_Semiring GxB_ANY_RDIV_INT32; +extern GrB_Semiring GxB_ANY_RDIV_INT64; +extern GrB_Semiring GxB_ANY_RDIV_UINT8; +extern GrB_Semiring GxB_ANY_RDIV_UINT16; +extern GrB_Semiring GxB_ANY_RDIV_UINT32; +extern GrB_Semiring GxB_ANY_RDIV_UINT64; +extern GrB_Semiring GxB_ANY_RMINUS_FC32; +extern GrB_Semiring GxB_ANY_RMINUS_FC64; +extern GrB_Semiring GxB_ANY_RMINUS_FP32; +extern GrB_Semiring GxB_ANY_RMINUS_FP64; +extern GrB_Semiring GxB_ANY_RMINUS_INT8; +extern GrB_Semiring GxB_ANY_RMINUS_INT16; +extern GrB_Semiring GxB_ANY_RMINUS_INT32; +extern GrB_Semiring GxB_ANY_RMINUS_INT64; +extern GrB_Semiring GxB_ANY_RMINUS_UINT8; +extern GrB_Semiring GxB_ANY_RMINUS_UINT16; +extern GrB_Semiring GxB_ANY_RMINUS_UINT32; +extern GrB_Semiring GxB_ANY_RMINUS_UINT64; +extern GrB_Semiring GxB_ANY_SECONDI1_INT32; +extern GrB_Semiring GxB_ANY_SECONDI1_INT64; +extern GrB_Semiring GxB_ANY_SECONDI_INT32; +extern GrB_Semiring GxB_ANY_SECONDI_INT64; +extern GrB_Semiring GxB_ANY_SECONDJ1_INT32; +extern GrB_Semiring GxB_ANY_SECONDJ1_INT64; +extern GrB_Semiring GxB_ANY_SECONDJ_INT32; +extern GrB_Semiring GxB_ANY_SECONDJ_INT64; +extern GrB_Semiring GxB_ANY_SECOND_BOOL; +extern GrB_Semiring GxB_ANY_SECOND_FC32; +extern GrB_Semiring GxB_ANY_SECOND_FC64; +extern GrB_Semiring GxB_ANY_SECOND_FP32; +extern GrB_Semiring GxB_ANY_SECOND_FP64; +extern GrB_Semiring GxB_ANY_SECOND_INT8; +extern GrB_Semiring GxB_ANY_SECOND_INT16; +extern GrB_Semiring GxB_ANY_SECOND_INT32; +extern GrB_Semiring GxB_ANY_SECOND_INT64; +extern GrB_Semiring GxB_ANY_SECOND_UINT8; +extern GrB_Semiring GxB_ANY_SECOND_UINT16; +extern GrB_Semiring GxB_ANY_SECOND_UINT32; +extern GrB_Semiring GxB_ANY_SECOND_UINT64; +extern GrB_Semiring GxB_ANY_TIMES_FC32; +extern GrB_Semiring GxB_ANY_TIMES_FC64; +extern GrB_Semiring GxB_ANY_TIMES_FP32; +extern GrB_Semiring GxB_ANY_TIMES_FP64; +extern GrB_Semiring GxB_ANY_TIMES_INT8; +extern GrB_Semiring GxB_ANY_TIMES_INT16; +extern GrB_Semiring GxB_ANY_TIMES_INT32; +extern GrB_Semiring GxB_ANY_TIMES_INT64; +extern GrB_Semiring GxB_ANY_TIMES_UINT8; +extern GrB_Semiring GxB_ANY_TIMES_UINT16; +extern GrB_Semiring GxB_ANY_TIMES_UINT32; +extern GrB_Semiring GxB_ANY_TIMES_UINT64; +extern GrB_Semiring GxB_BAND_BAND_UINT8; +extern GrB_Semiring GxB_BAND_BAND_UINT16; +extern GrB_Semiring GxB_BAND_BAND_UINT32; +extern GrB_Semiring GxB_BAND_BAND_UINT64; +extern GrB_Semiring GxB_BAND_BOR_UINT8; +extern GrB_Semiring GxB_BAND_BOR_UINT16; +extern GrB_Semiring GxB_BAND_BOR_UINT32; +extern GrB_Semiring GxB_BAND_BOR_UINT64; +extern GrB_Semiring GxB_BAND_BXNOR_UINT8; +extern GrB_Semiring GxB_BAND_BXNOR_UINT16; +extern GrB_Semiring GxB_BAND_BXNOR_UINT32; +extern GrB_Semiring GxB_BAND_BXNOR_UINT64; +extern GrB_Semiring GxB_BAND_BXOR_UINT8; +extern GrB_Semiring GxB_BAND_BXOR_UINT16; +extern GrB_Semiring GxB_BAND_BXOR_UINT32; +extern GrB_Semiring GxB_BAND_BXOR_UINT64; +extern GrB_Semiring GxB_BOR_BAND_UINT8; +extern GrB_Semiring GxB_BOR_BAND_UINT16; +extern GrB_Semiring GxB_BOR_BAND_UINT32; +extern GrB_Semiring GxB_BOR_BAND_UINT64; +extern GrB_Semiring GxB_BOR_BOR_UINT8; +extern GrB_Semiring GxB_BOR_BOR_UINT16; +extern GrB_Semiring GxB_BOR_BOR_UINT32; +extern GrB_Semiring GxB_BOR_BOR_UINT64; +extern GrB_Semiring GxB_BOR_BXNOR_UINT8; +extern GrB_Semiring GxB_BOR_BXNOR_UINT16; +extern GrB_Semiring GxB_BOR_BXNOR_UINT32; +extern GrB_Semiring GxB_BOR_BXNOR_UINT64; +extern GrB_Semiring GxB_BOR_BXOR_UINT8; +extern GrB_Semiring GxB_BOR_BXOR_UINT16; +extern GrB_Semiring GxB_BOR_BXOR_UINT32; +extern GrB_Semiring GxB_BOR_BXOR_UINT64; +extern GrB_Semiring GxB_BXNOR_BAND_UINT8; +extern GrB_Semiring GxB_BXNOR_BAND_UINT16; +extern GrB_Semiring GxB_BXNOR_BAND_UINT32; +extern GrB_Semiring GxB_BXNOR_BAND_UINT64; +extern GrB_Semiring GxB_BXNOR_BOR_UINT8; +extern GrB_Semiring GxB_BXNOR_BOR_UINT16; +extern GrB_Semiring GxB_BXNOR_BOR_UINT32; +extern GrB_Semiring GxB_BXNOR_BOR_UINT64; +extern GrB_Semiring GxB_BXNOR_BXNOR_UINT8; +extern GrB_Semiring GxB_BXNOR_BXNOR_UINT16; +extern GrB_Semiring GxB_BXNOR_BXNOR_UINT32; +extern GrB_Semiring GxB_BXNOR_BXNOR_UINT64; +extern GrB_Semiring GxB_BXNOR_BXOR_UINT8; +extern GrB_Semiring GxB_BXNOR_BXOR_UINT16; +extern GrB_Semiring GxB_BXNOR_BXOR_UINT32; +extern GrB_Semiring GxB_BXNOR_BXOR_UINT64; +extern GrB_Semiring GxB_BXOR_BAND_UINT8; +extern GrB_Semiring GxB_BXOR_BAND_UINT16; +extern GrB_Semiring GxB_BXOR_BAND_UINT32; +extern GrB_Semiring GxB_BXOR_BAND_UINT64; +extern GrB_Semiring GxB_BXOR_BOR_UINT8; +extern GrB_Semiring GxB_BXOR_BOR_UINT16; +extern GrB_Semiring GxB_BXOR_BOR_UINT32; +extern GrB_Semiring GxB_BXOR_BOR_UINT64; +extern GrB_Semiring GxB_BXOR_BXNOR_UINT8; +extern GrB_Semiring GxB_BXOR_BXNOR_UINT16; +extern GrB_Semiring GxB_BXOR_BXNOR_UINT32; +extern GrB_Semiring GxB_BXOR_BXNOR_UINT64; +extern GrB_Semiring GxB_BXOR_BXOR_UINT8; +extern GrB_Semiring GxB_BXOR_BXOR_UINT16; +extern GrB_Semiring GxB_BXOR_BXOR_UINT32; +extern GrB_Semiring GxB_BXOR_BXOR_UINT64; +extern GrB_Semiring GxB_EQ_EQ_BOOL; +extern GrB_Semiring GxB_EQ_EQ_FP32; +extern GrB_Semiring GxB_EQ_EQ_FP64; +extern GrB_Semiring GxB_EQ_EQ_INT8; +extern GrB_Semiring GxB_EQ_EQ_INT16; +extern GrB_Semiring GxB_EQ_EQ_INT32; +extern GrB_Semiring GxB_EQ_EQ_INT64; +extern GrB_Semiring GxB_EQ_EQ_UINT8; +extern GrB_Semiring GxB_EQ_EQ_UINT16; +extern GrB_Semiring GxB_EQ_EQ_UINT32; +extern GrB_Semiring GxB_EQ_EQ_UINT64; +extern GrB_Semiring GxB_EQ_FIRST_BOOL; +extern GrB_Semiring GxB_EQ_GE_BOOL; +extern GrB_Semiring GxB_EQ_GE_FP32; +extern GrB_Semiring GxB_EQ_GE_FP64; +extern GrB_Semiring GxB_EQ_GE_INT8; +extern GrB_Semiring GxB_EQ_GE_INT16; +extern GrB_Semiring GxB_EQ_GE_INT32; +extern GrB_Semiring GxB_EQ_GE_INT64; +extern GrB_Semiring GxB_EQ_GE_UINT8; +extern GrB_Semiring GxB_EQ_GE_UINT16; +extern GrB_Semiring GxB_EQ_GE_UINT32; +extern GrB_Semiring GxB_EQ_GE_UINT64; +extern GrB_Semiring GxB_EQ_GT_BOOL; +extern GrB_Semiring GxB_EQ_GT_FP32; +extern GrB_Semiring GxB_EQ_GT_FP64; +extern GrB_Semiring GxB_EQ_GT_INT8; +extern GrB_Semiring GxB_EQ_GT_INT16; +extern GrB_Semiring GxB_EQ_GT_INT32; +extern GrB_Semiring GxB_EQ_GT_INT64; +extern GrB_Semiring GxB_EQ_GT_UINT8; +extern GrB_Semiring GxB_EQ_GT_UINT16; +extern GrB_Semiring GxB_EQ_GT_UINT32; +extern GrB_Semiring GxB_EQ_GT_UINT64; +extern GrB_Semiring GxB_EQ_LAND_BOOL; +extern GrB_Semiring GxB_EQ_LE_BOOL; +extern GrB_Semiring GxB_EQ_LE_FP32; +extern GrB_Semiring GxB_EQ_LE_FP64; +extern GrB_Semiring GxB_EQ_LE_INT8; +extern GrB_Semiring GxB_EQ_LE_INT16; +extern GrB_Semiring GxB_EQ_LE_INT32; +extern GrB_Semiring GxB_EQ_LE_INT64; +extern GrB_Semiring GxB_EQ_LE_UINT8; +extern GrB_Semiring GxB_EQ_LE_UINT16; +extern GrB_Semiring GxB_EQ_LE_UINT32; +extern GrB_Semiring GxB_EQ_LE_UINT64; +extern GrB_Semiring GxB_EQ_LOR_BOOL; +extern GrB_Semiring GxB_EQ_LT_BOOL; +extern GrB_Semiring GxB_EQ_LT_FP32; +extern GrB_Semiring GxB_EQ_LT_FP64; +extern GrB_Semiring GxB_EQ_LT_INT8; +extern GrB_Semiring GxB_EQ_LT_INT16; +extern GrB_Semiring GxB_EQ_LT_INT32; +extern GrB_Semiring GxB_EQ_LT_INT64; +extern GrB_Semiring GxB_EQ_LT_UINT8; +extern GrB_Semiring GxB_EQ_LT_UINT16; +extern GrB_Semiring GxB_EQ_LT_UINT32; +extern GrB_Semiring GxB_EQ_LT_UINT64; +extern GrB_Semiring GxB_EQ_LXOR_BOOL; +extern GrB_Semiring GxB_EQ_NE_FP32; +extern GrB_Semiring GxB_EQ_NE_FP64; +extern GrB_Semiring GxB_EQ_NE_INT8; +extern GrB_Semiring GxB_EQ_NE_INT16; +extern GrB_Semiring GxB_EQ_NE_INT32; +extern GrB_Semiring GxB_EQ_NE_INT64; +extern GrB_Semiring GxB_EQ_NE_UINT8; +extern GrB_Semiring GxB_EQ_NE_UINT16; +extern GrB_Semiring GxB_EQ_NE_UINT32; +extern GrB_Semiring GxB_EQ_NE_UINT64; +extern GrB_Semiring GxB_EQ_PAIR_BOOL; +extern GrB_Semiring GxB_EQ_SECOND_BOOL; +extern GrB_Semiring GxB_LAND_EQ_BOOL; +extern GrB_Semiring GxB_LAND_EQ_FP32; +extern GrB_Semiring GxB_LAND_EQ_FP64; +extern GrB_Semiring GxB_LAND_EQ_INT8; +extern GrB_Semiring GxB_LAND_EQ_INT16; +extern GrB_Semiring GxB_LAND_EQ_INT32; +extern GrB_Semiring GxB_LAND_EQ_INT64; +extern GrB_Semiring GxB_LAND_EQ_UINT8; +extern GrB_Semiring GxB_LAND_EQ_UINT16; +extern GrB_Semiring GxB_LAND_EQ_UINT32; +extern GrB_Semiring GxB_LAND_EQ_UINT64; +extern GrB_Semiring GxB_LAND_FIRST_BOOL; +extern GrB_Semiring GxB_LAND_GE_BOOL; +extern GrB_Semiring GxB_LAND_GE_FP32; +extern GrB_Semiring GxB_LAND_GE_FP64; +extern GrB_Semiring GxB_LAND_GE_INT8; +extern GrB_Semiring GxB_LAND_GE_INT16; +extern GrB_Semiring GxB_LAND_GE_INT32; +extern GrB_Semiring GxB_LAND_GE_INT64; +extern GrB_Semiring GxB_LAND_GE_UINT8; +extern GrB_Semiring GxB_LAND_GE_UINT16; +extern GrB_Semiring GxB_LAND_GE_UINT32; +extern GrB_Semiring GxB_LAND_GE_UINT64; +extern GrB_Semiring GxB_LAND_GT_BOOL; +extern GrB_Semiring GxB_LAND_GT_FP32; +extern GrB_Semiring GxB_LAND_GT_FP64; +extern GrB_Semiring GxB_LAND_GT_INT8; +extern GrB_Semiring GxB_LAND_GT_INT16; +extern GrB_Semiring GxB_LAND_GT_INT32; +extern GrB_Semiring GxB_LAND_GT_INT64; +extern GrB_Semiring GxB_LAND_GT_UINT8; +extern GrB_Semiring GxB_LAND_GT_UINT16; +extern GrB_Semiring GxB_LAND_GT_UINT32; +extern GrB_Semiring GxB_LAND_GT_UINT64; +extern GrB_Semiring GxB_LAND_LAND_BOOL; +extern GrB_Semiring GxB_LAND_LE_BOOL; +extern GrB_Semiring GxB_LAND_LE_FP32; +extern GrB_Semiring GxB_LAND_LE_FP64; +extern GrB_Semiring GxB_LAND_LE_INT8; +extern GrB_Semiring GxB_LAND_LE_INT16; +extern GrB_Semiring GxB_LAND_LE_INT32; +extern GrB_Semiring GxB_LAND_LE_INT64; +extern GrB_Semiring GxB_LAND_LE_UINT8; +extern GrB_Semiring GxB_LAND_LE_UINT16; +extern GrB_Semiring GxB_LAND_LE_UINT32; +extern GrB_Semiring GxB_LAND_LE_UINT64; +extern GrB_Semiring GxB_LAND_LT_BOOL; +extern GrB_Semiring GxB_LAND_LT_FP32; +extern GrB_Semiring GxB_LAND_LT_FP64; +extern GrB_Semiring GxB_LAND_LT_INT8; +extern GrB_Semiring GxB_LAND_LT_INT16; +extern GrB_Semiring GxB_LAND_LT_INT32; +extern GrB_Semiring GxB_LAND_LT_INT64; +extern GrB_Semiring GxB_LAND_LT_UINT8; +extern GrB_Semiring GxB_LAND_LT_UINT16; +extern GrB_Semiring GxB_LAND_LT_UINT32; +extern GrB_Semiring GxB_LAND_LT_UINT64; +extern GrB_Semiring GxB_LAND_LXOR_BOOL; +extern GrB_Semiring GxB_LAND_NE_FP32; +extern GrB_Semiring GxB_LAND_NE_FP64; +extern GrB_Semiring GxB_LAND_NE_INT8; +extern GrB_Semiring GxB_LAND_NE_INT16; +extern GrB_Semiring GxB_LAND_NE_INT32; +extern GrB_Semiring GxB_LAND_NE_INT64; +extern GrB_Semiring GxB_LAND_NE_UINT8; +extern GrB_Semiring GxB_LAND_NE_UINT16; +extern GrB_Semiring GxB_LAND_NE_UINT32; +extern GrB_Semiring GxB_LAND_NE_UINT64; +extern GrB_Semiring GxB_LAND_PAIR_BOOL; +extern GrB_Semiring GxB_LAND_SECOND_BOOL; +extern GrB_Semiring GxB_LOR_EQ_BOOL; +extern GrB_Semiring GxB_LOR_EQ_FP32; +extern GrB_Semiring GxB_LOR_EQ_FP64; +extern GrB_Semiring GxB_LOR_EQ_INT8; +extern GrB_Semiring GxB_LOR_EQ_INT16; +extern GrB_Semiring GxB_LOR_EQ_INT32; +extern GrB_Semiring GxB_LOR_EQ_INT64; +extern GrB_Semiring GxB_LOR_EQ_UINT8; +extern GrB_Semiring GxB_LOR_EQ_UINT16; +extern GrB_Semiring GxB_LOR_EQ_UINT32; +extern GrB_Semiring GxB_LOR_EQ_UINT64; +extern GrB_Semiring GxB_LOR_FIRST_BOOL; +extern GrB_Semiring GxB_LOR_GE_BOOL; +extern GrB_Semiring GxB_LOR_GE_FP32; +extern GrB_Semiring GxB_LOR_GE_FP64; +extern GrB_Semiring GxB_LOR_GE_INT8; +extern GrB_Semiring GxB_LOR_GE_INT16; +extern GrB_Semiring GxB_LOR_GE_INT32; +extern GrB_Semiring GxB_LOR_GE_INT64; +extern GrB_Semiring GxB_LOR_GE_UINT8; +extern GrB_Semiring GxB_LOR_GE_UINT16; +extern GrB_Semiring GxB_LOR_GE_UINT32; +extern GrB_Semiring GxB_LOR_GE_UINT64; +extern GrB_Semiring GxB_LOR_GT_BOOL; +extern GrB_Semiring GxB_LOR_GT_FP32; +extern GrB_Semiring GxB_LOR_GT_FP64; +extern GrB_Semiring GxB_LOR_GT_INT8; +extern GrB_Semiring GxB_LOR_GT_INT16; +extern GrB_Semiring GxB_LOR_GT_INT32; +extern GrB_Semiring GxB_LOR_GT_INT64; +extern GrB_Semiring GxB_LOR_GT_UINT8; +extern GrB_Semiring GxB_LOR_GT_UINT16; +extern GrB_Semiring GxB_LOR_GT_UINT32; +extern GrB_Semiring GxB_LOR_GT_UINT64; +extern GrB_Semiring GxB_LOR_LE_BOOL; +extern GrB_Semiring GxB_LOR_LE_FP32; +extern GrB_Semiring GxB_LOR_LE_FP64; +extern GrB_Semiring GxB_LOR_LE_INT8; +extern GrB_Semiring GxB_LOR_LE_INT16; +extern GrB_Semiring GxB_LOR_LE_INT32; +extern GrB_Semiring GxB_LOR_LE_INT64; +extern GrB_Semiring GxB_LOR_LE_UINT8; +extern GrB_Semiring GxB_LOR_LE_UINT16; +extern GrB_Semiring GxB_LOR_LE_UINT32; +extern GrB_Semiring GxB_LOR_LE_UINT64; +extern GrB_Semiring GxB_LOR_LOR_BOOL; +extern GrB_Semiring GxB_LOR_LT_BOOL; +extern GrB_Semiring GxB_LOR_LT_FP32; +extern GrB_Semiring GxB_LOR_LT_FP64; +extern GrB_Semiring GxB_LOR_LT_INT8; +extern GrB_Semiring GxB_LOR_LT_INT16; +extern GrB_Semiring GxB_LOR_LT_INT32; +extern GrB_Semiring GxB_LOR_LT_INT64; +extern GrB_Semiring GxB_LOR_LT_UINT8; +extern GrB_Semiring GxB_LOR_LT_UINT16; +extern GrB_Semiring GxB_LOR_LT_UINT32; +extern GrB_Semiring GxB_LOR_LT_UINT64; +extern GrB_Semiring GxB_LOR_LXOR_BOOL; +extern GrB_Semiring GxB_LOR_NE_FP32; +extern GrB_Semiring GxB_LOR_NE_FP64; +extern GrB_Semiring GxB_LOR_NE_INT8; +extern GrB_Semiring GxB_LOR_NE_INT16; +extern GrB_Semiring GxB_LOR_NE_INT32; +extern GrB_Semiring GxB_LOR_NE_INT64; +extern GrB_Semiring GxB_LOR_NE_UINT8; +extern GrB_Semiring GxB_LOR_NE_UINT16; +extern GrB_Semiring GxB_LOR_NE_UINT32; +extern GrB_Semiring GxB_LOR_NE_UINT64; +extern GrB_Semiring GxB_LOR_PAIR_BOOL; +extern GrB_Semiring GxB_LOR_SECOND_BOOL; +extern GrB_Semiring GxB_LXOR_EQ_BOOL; +extern GrB_Semiring GxB_LXOR_EQ_FP32; +extern GrB_Semiring GxB_LXOR_EQ_FP64; +extern GrB_Semiring GxB_LXOR_EQ_INT8; +extern GrB_Semiring GxB_LXOR_EQ_INT16; +extern GrB_Semiring GxB_LXOR_EQ_INT32; +extern GrB_Semiring GxB_LXOR_EQ_INT64; +extern GrB_Semiring GxB_LXOR_EQ_UINT8; +extern GrB_Semiring GxB_LXOR_EQ_UINT16; +extern GrB_Semiring GxB_LXOR_EQ_UINT32; +extern GrB_Semiring GxB_LXOR_EQ_UINT64; +extern GrB_Semiring GxB_LXOR_FIRST_BOOL; +extern GrB_Semiring GxB_LXOR_GE_BOOL; +extern GrB_Semiring GxB_LXOR_GE_FP32; +extern GrB_Semiring GxB_LXOR_GE_FP64; +extern GrB_Semiring GxB_LXOR_GE_INT8; +extern GrB_Semiring GxB_LXOR_GE_INT16; +extern GrB_Semiring GxB_LXOR_GE_INT32; +extern GrB_Semiring GxB_LXOR_GE_INT64; +extern GrB_Semiring GxB_LXOR_GE_UINT8; +extern GrB_Semiring GxB_LXOR_GE_UINT16; +extern GrB_Semiring GxB_LXOR_GE_UINT32; +extern GrB_Semiring GxB_LXOR_GE_UINT64; +extern GrB_Semiring GxB_LXOR_GT_BOOL; +extern GrB_Semiring GxB_LXOR_GT_FP32; +extern GrB_Semiring GxB_LXOR_GT_FP64; +extern GrB_Semiring GxB_LXOR_GT_INT8; +extern GrB_Semiring GxB_LXOR_GT_INT16; +extern GrB_Semiring GxB_LXOR_GT_INT32; +extern GrB_Semiring GxB_LXOR_GT_INT64; +extern GrB_Semiring GxB_LXOR_GT_UINT8; +extern GrB_Semiring GxB_LXOR_GT_UINT16; +extern GrB_Semiring GxB_LXOR_GT_UINT32; +extern GrB_Semiring GxB_LXOR_GT_UINT64; +extern GrB_Semiring GxB_LXOR_LE_BOOL; +extern GrB_Semiring GxB_LXOR_LE_FP32; +extern GrB_Semiring GxB_LXOR_LE_FP64; +extern GrB_Semiring GxB_LXOR_LE_INT8; +extern GrB_Semiring GxB_LXOR_LE_INT16; +extern GrB_Semiring GxB_LXOR_LE_INT32; +extern GrB_Semiring GxB_LXOR_LE_INT64; +extern GrB_Semiring GxB_LXOR_LE_UINT8; +extern GrB_Semiring GxB_LXOR_LE_UINT16; +extern GrB_Semiring GxB_LXOR_LE_UINT32; +extern GrB_Semiring GxB_LXOR_LE_UINT64; +extern GrB_Semiring GxB_LXOR_LOR_BOOL; +extern GrB_Semiring GxB_LXOR_LT_BOOL; +extern GrB_Semiring GxB_LXOR_LT_FP32; +extern GrB_Semiring GxB_LXOR_LT_FP64; +extern GrB_Semiring GxB_LXOR_LT_INT8; +extern GrB_Semiring GxB_LXOR_LT_INT16; +extern GrB_Semiring GxB_LXOR_LT_INT32; +extern GrB_Semiring GxB_LXOR_LT_INT64; +extern GrB_Semiring GxB_LXOR_LT_UINT8; +extern GrB_Semiring GxB_LXOR_LT_UINT16; +extern GrB_Semiring GxB_LXOR_LT_UINT32; +extern GrB_Semiring GxB_LXOR_LT_UINT64; +extern GrB_Semiring GxB_LXOR_LXOR_BOOL; +extern GrB_Semiring GxB_LXOR_NE_FP32; +extern GrB_Semiring GxB_LXOR_NE_FP64; +extern GrB_Semiring GxB_LXOR_NE_INT8; +extern GrB_Semiring GxB_LXOR_NE_INT16; +extern GrB_Semiring GxB_LXOR_NE_INT32; +extern GrB_Semiring GxB_LXOR_NE_INT64; +extern GrB_Semiring GxB_LXOR_NE_UINT8; +extern GrB_Semiring GxB_LXOR_NE_UINT16; +extern GrB_Semiring GxB_LXOR_NE_UINT32; +extern GrB_Semiring GxB_LXOR_NE_UINT64; +extern GrB_Semiring GxB_LXOR_PAIR_BOOL; +extern GrB_Semiring GxB_LXOR_SECOND_BOOL; +extern GrB_Semiring GxB_MAX_DIV_FP32; +extern GrB_Semiring GxB_MAX_DIV_FP64; +extern GrB_Semiring GxB_MAX_DIV_INT8; +extern GrB_Semiring GxB_MAX_DIV_INT16; +extern GrB_Semiring GxB_MAX_DIV_INT32; +extern GrB_Semiring GxB_MAX_DIV_INT64; +extern GrB_Semiring GxB_MAX_DIV_UINT8; +extern GrB_Semiring GxB_MAX_DIV_UINT16; +extern GrB_Semiring GxB_MAX_DIV_UINT32; +extern GrB_Semiring GxB_MAX_DIV_UINT64; +extern GrB_Semiring GxB_MAX_FIRSTI1_INT32; +extern GrB_Semiring GxB_MAX_FIRSTI1_INT64; +extern GrB_Semiring GxB_MAX_FIRSTI_INT32; +extern GrB_Semiring GxB_MAX_FIRSTI_INT64; +extern GrB_Semiring GxB_MAX_FIRSTJ1_INT32; +extern GrB_Semiring GxB_MAX_FIRSTJ1_INT64; +extern GrB_Semiring GxB_MAX_FIRSTJ_INT32; +extern GrB_Semiring GxB_MAX_FIRSTJ_INT64; +extern GrB_Semiring GxB_MAX_ISEQ_FP32; +extern GrB_Semiring GxB_MAX_ISEQ_FP64; +extern GrB_Semiring GxB_MAX_ISEQ_INT8; +extern GrB_Semiring GxB_MAX_ISEQ_INT16; +extern GrB_Semiring GxB_MAX_ISEQ_INT32; +extern GrB_Semiring GxB_MAX_ISEQ_INT64; +extern GrB_Semiring GxB_MAX_ISEQ_UINT8; +extern GrB_Semiring GxB_MAX_ISEQ_UINT16; +extern GrB_Semiring GxB_MAX_ISEQ_UINT32; +extern GrB_Semiring GxB_MAX_ISEQ_UINT64; +extern GrB_Semiring GxB_MAX_ISGE_FP32; +extern GrB_Semiring GxB_MAX_ISGE_FP64; +extern GrB_Semiring GxB_MAX_ISGE_INT8; +extern GrB_Semiring GxB_MAX_ISGE_INT16; +extern GrB_Semiring GxB_MAX_ISGE_INT32; +extern GrB_Semiring GxB_MAX_ISGE_INT64; +extern GrB_Semiring GxB_MAX_ISGE_UINT8; +extern GrB_Semiring GxB_MAX_ISGE_UINT16; +extern GrB_Semiring GxB_MAX_ISGE_UINT32; +extern GrB_Semiring GxB_MAX_ISGE_UINT64; +extern GrB_Semiring GxB_MAX_ISGT_FP32; +extern GrB_Semiring GxB_MAX_ISGT_FP64; +extern GrB_Semiring GxB_MAX_ISGT_INT8; +extern GrB_Semiring GxB_MAX_ISGT_INT16; +extern GrB_Semiring GxB_MAX_ISGT_INT32; +extern GrB_Semiring GxB_MAX_ISGT_INT64; +extern GrB_Semiring GxB_MAX_ISGT_UINT8; +extern GrB_Semiring GxB_MAX_ISGT_UINT16; +extern GrB_Semiring GxB_MAX_ISGT_UINT32; +extern GrB_Semiring GxB_MAX_ISGT_UINT64; +extern GrB_Semiring GxB_MAX_ISLE_FP32; +extern GrB_Semiring GxB_MAX_ISLE_FP64; +extern GrB_Semiring GxB_MAX_ISLE_INT8; +extern GrB_Semiring GxB_MAX_ISLE_INT16; +extern GrB_Semiring GxB_MAX_ISLE_INT32; +extern GrB_Semiring GxB_MAX_ISLE_INT64; +extern GrB_Semiring GxB_MAX_ISLE_UINT8; +extern GrB_Semiring GxB_MAX_ISLE_UINT16; +extern GrB_Semiring GxB_MAX_ISLE_UINT32; +extern GrB_Semiring GxB_MAX_ISLE_UINT64; +extern GrB_Semiring GxB_MAX_ISLT_FP32; +extern GrB_Semiring GxB_MAX_ISLT_FP64; +extern GrB_Semiring GxB_MAX_ISLT_INT8; +extern GrB_Semiring GxB_MAX_ISLT_INT16; +extern GrB_Semiring GxB_MAX_ISLT_INT32; +extern GrB_Semiring GxB_MAX_ISLT_INT64; +extern GrB_Semiring GxB_MAX_ISLT_UINT8; +extern GrB_Semiring GxB_MAX_ISLT_UINT16; +extern GrB_Semiring GxB_MAX_ISLT_UINT32; +extern GrB_Semiring GxB_MAX_ISLT_UINT64; +extern GrB_Semiring GxB_MAX_ISNE_FP32; +extern GrB_Semiring GxB_MAX_ISNE_FP64; +extern GrB_Semiring GxB_MAX_ISNE_INT8; +extern GrB_Semiring GxB_MAX_ISNE_INT16; +extern GrB_Semiring GxB_MAX_ISNE_INT32; +extern GrB_Semiring GxB_MAX_ISNE_INT64; +extern GrB_Semiring GxB_MAX_ISNE_UINT8; +extern GrB_Semiring GxB_MAX_ISNE_UINT16; +extern GrB_Semiring GxB_MAX_ISNE_UINT32; +extern GrB_Semiring GxB_MAX_ISNE_UINT64; +extern GrB_Semiring GxB_MAX_LAND_FP32; +extern GrB_Semiring GxB_MAX_LAND_FP64; +extern GrB_Semiring GxB_MAX_LAND_INT8; +extern GrB_Semiring GxB_MAX_LAND_INT16; +extern GrB_Semiring GxB_MAX_LAND_INT32; +extern GrB_Semiring GxB_MAX_LAND_INT64; +extern GrB_Semiring GxB_MAX_LAND_UINT8; +extern GrB_Semiring GxB_MAX_LAND_UINT16; +extern GrB_Semiring GxB_MAX_LAND_UINT32; +extern GrB_Semiring GxB_MAX_LAND_UINT64; +extern GrB_Semiring GxB_MAX_LOR_FP32; +extern GrB_Semiring GxB_MAX_LOR_FP64; +extern GrB_Semiring GxB_MAX_LOR_INT8; +extern GrB_Semiring GxB_MAX_LOR_INT16; +extern GrB_Semiring GxB_MAX_LOR_INT32; +extern GrB_Semiring GxB_MAX_LOR_INT64; +extern GrB_Semiring GxB_MAX_LOR_UINT8; +extern GrB_Semiring GxB_MAX_LOR_UINT16; +extern GrB_Semiring GxB_MAX_LOR_UINT32; +extern GrB_Semiring GxB_MAX_LOR_UINT64; +extern GrB_Semiring GxB_MAX_LXOR_FP32; +extern GrB_Semiring GxB_MAX_LXOR_FP64; +extern GrB_Semiring GxB_MAX_LXOR_INT8; +extern GrB_Semiring GxB_MAX_LXOR_INT16; +extern GrB_Semiring GxB_MAX_LXOR_INT32; +extern GrB_Semiring GxB_MAX_LXOR_INT64; +extern GrB_Semiring GxB_MAX_LXOR_UINT8; +extern GrB_Semiring GxB_MAX_LXOR_UINT16; +extern GrB_Semiring GxB_MAX_LXOR_UINT32; +extern GrB_Semiring GxB_MAX_LXOR_UINT64; +extern GrB_Semiring GxB_MAX_MAX_FP32; +extern GrB_Semiring GxB_MAX_MAX_FP64; +extern GrB_Semiring GxB_MAX_MAX_INT8; +extern GrB_Semiring GxB_MAX_MAX_INT16; +extern GrB_Semiring GxB_MAX_MAX_INT32; +extern GrB_Semiring GxB_MAX_MAX_INT64; +extern GrB_Semiring GxB_MAX_MAX_UINT8; +extern GrB_Semiring GxB_MAX_MAX_UINT16; +extern GrB_Semiring GxB_MAX_MAX_UINT32; +extern GrB_Semiring GxB_MAX_MAX_UINT64; +extern GrB_Semiring GxB_MAX_MINUS_FP32; +extern GrB_Semiring GxB_MAX_MINUS_FP64; +extern GrB_Semiring GxB_MAX_MINUS_INT8; +extern GrB_Semiring GxB_MAX_MINUS_INT16; +extern GrB_Semiring GxB_MAX_MINUS_INT32; +extern GrB_Semiring GxB_MAX_MINUS_INT64; +extern GrB_Semiring GxB_MAX_MINUS_UINT8; +extern GrB_Semiring GxB_MAX_MINUS_UINT16; +extern GrB_Semiring GxB_MAX_MINUS_UINT32; +extern GrB_Semiring GxB_MAX_MINUS_UINT64; +extern GrB_Semiring GxB_MAX_PAIR_FP32; +extern GrB_Semiring GxB_MAX_PAIR_FP64; +extern GrB_Semiring GxB_MAX_PAIR_INT8; +extern GrB_Semiring GxB_MAX_PAIR_INT16; +extern GrB_Semiring GxB_MAX_PAIR_INT32; +extern GrB_Semiring GxB_MAX_PAIR_INT64; +extern GrB_Semiring GxB_MAX_PAIR_UINT8; +extern GrB_Semiring GxB_MAX_PAIR_UINT16; +extern GrB_Semiring GxB_MAX_PAIR_UINT32; +extern GrB_Semiring GxB_MAX_PAIR_UINT64; +extern GrB_Semiring GxB_MAX_RDIV_FP32; +extern GrB_Semiring GxB_MAX_RDIV_FP64; +extern GrB_Semiring GxB_MAX_RDIV_INT8; +extern GrB_Semiring GxB_MAX_RDIV_INT16; +extern GrB_Semiring GxB_MAX_RDIV_INT32; +extern GrB_Semiring GxB_MAX_RDIV_INT64; +extern GrB_Semiring GxB_MAX_RDIV_UINT8; +extern GrB_Semiring GxB_MAX_RDIV_UINT16; +extern GrB_Semiring GxB_MAX_RDIV_UINT32; +extern GrB_Semiring GxB_MAX_RDIV_UINT64; +extern GrB_Semiring GxB_MAX_RMINUS_FP32; +extern GrB_Semiring GxB_MAX_RMINUS_FP64; +extern GrB_Semiring GxB_MAX_RMINUS_INT8; +extern GrB_Semiring GxB_MAX_RMINUS_INT16; +extern GrB_Semiring GxB_MAX_RMINUS_INT32; +extern GrB_Semiring GxB_MAX_RMINUS_INT64; +extern GrB_Semiring GxB_MAX_RMINUS_UINT8; +extern GrB_Semiring GxB_MAX_RMINUS_UINT16; +extern GrB_Semiring GxB_MAX_RMINUS_UINT32; +extern GrB_Semiring GxB_MAX_RMINUS_UINT64; +extern GrB_Semiring GxB_MAX_SECONDI1_INT32; +extern GrB_Semiring GxB_MAX_SECONDI1_INT64; +extern GrB_Semiring GxB_MAX_SECONDI_INT32; +extern GrB_Semiring GxB_MAX_SECONDI_INT64; +extern GrB_Semiring GxB_MAX_SECONDJ1_INT32; +extern GrB_Semiring GxB_MAX_SECONDJ1_INT64; +extern GrB_Semiring GxB_MAX_SECONDJ_INT32; +extern GrB_Semiring GxB_MAX_SECONDJ_INT64; +extern GrB_Semiring GxB_MIN_DIV_FP32; +extern GrB_Semiring GxB_MIN_DIV_FP64; +extern GrB_Semiring GxB_MIN_DIV_INT8; +extern GrB_Semiring GxB_MIN_DIV_INT16; +extern GrB_Semiring GxB_MIN_DIV_INT32; +extern GrB_Semiring GxB_MIN_DIV_INT64; +extern GrB_Semiring GxB_MIN_DIV_UINT8; +extern GrB_Semiring GxB_MIN_DIV_UINT16; +extern GrB_Semiring GxB_MIN_DIV_UINT32; +extern GrB_Semiring GxB_MIN_DIV_UINT64; +extern GrB_Semiring GxB_MIN_FIRSTI1_INT32; +extern GrB_Semiring GxB_MIN_FIRSTI1_INT64; +extern GrB_Semiring GxB_MIN_FIRSTI_INT32; +extern GrB_Semiring GxB_MIN_FIRSTI_INT64; +extern GrB_Semiring GxB_MIN_FIRSTJ1_INT32; +extern GrB_Semiring GxB_MIN_FIRSTJ1_INT64; +extern GrB_Semiring GxB_MIN_FIRSTJ_INT32; +extern GrB_Semiring GxB_MIN_FIRSTJ_INT64; +extern GrB_Semiring GxB_MIN_ISEQ_FP32; +extern GrB_Semiring GxB_MIN_ISEQ_FP64; +extern GrB_Semiring GxB_MIN_ISEQ_INT8; +extern GrB_Semiring GxB_MIN_ISEQ_INT16; +extern GrB_Semiring GxB_MIN_ISEQ_INT32; +extern GrB_Semiring GxB_MIN_ISEQ_INT64; +extern GrB_Semiring GxB_MIN_ISEQ_UINT8; +extern GrB_Semiring GxB_MIN_ISEQ_UINT16; +extern GrB_Semiring GxB_MIN_ISEQ_UINT32; +extern GrB_Semiring GxB_MIN_ISEQ_UINT64; +extern GrB_Semiring GxB_MIN_ISGE_FP32; +extern GrB_Semiring GxB_MIN_ISGE_FP64; +extern GrB_Semiring GxB_MIN_ISGE_INT8; +extern GrB_Semiring GxB_MIN_ISGE_INT16; +extern GrB_Semiring GxB_MIN_ISGE_INT32; +extern GrB_Semiring GxB_MIN_ISGE_INT64; +extern GrB_Semiring GxB_MIN_ISGE_UINT8; +extern GrB_Semiring GxB_MIN_ISGE_UINT16; +extern GrB_Semiring GxB_MIN_ISGE_UINT32; +extern GrB_Semiring GxB_MIN_ISGE_UINT64; +extern GrB_Semiring GxB_MIN_ISGT_FP32; +extern GrB_Semiring GxB_MIN_ISGT_FP64; +extern GrB_Semiring GxB_MIN_ISGT_INT8; +extern GrB_Semiring GxB_MIN_ISGT_INT16; +extern GrB_Semiring GxB_MIN_ISGT_INT32; +extern GrB_Semiring GxB_MIN_ISGT_INT64; +extern GrB_Semiring GxB_MIN_ISGT_UINT8; +extern GrB_Semiring GxB_MIN_ISGT_UINT16; +extern GrB_Semiring GxB_MIN_ISGT_UINT32; +extern GrB_Semiring GxB_MIN_ISGT_UINT64; +extern GrB_Semiring GxB_MIN_ISLE_FP32; +extern GrB_Semiring GxB_MIN_ISLE_FP64; +extern GrB_Semiring GxB_MIN_ISLE_INT8; +extern GrB_Semiring GxB_MIN_ISLE_INT16; +extern GrB_Semiring GxB_MIN_ISLE_INT32; +extern GrB_Semiring GxB_MIN_ISLE_INT64; +extern GrB_Semiring GxB_MIN_ISLE_UINT8; +extern GrB_Semiring GxB_MIN_ISLE_UINT16; +extern GrB_Semiring GxB_MIN_ISLE_UINT32; +extern GrB_Semiring GxB_MIN_ISLE_UINT64; +extern GrB_Semiring GxB_MIN_ISLT_FP32; +extern GrB_Semiring GxB_MIN_ISLT_FP64; +extern GrB_Semiring GxB_MIN_ISLT_INT8; +extern GrB_Semiring GxB_MIN_ISLT_INT16; +extern GrB_Semiring GxB_MIN_ISLT_INT32; +extern GrB_Semiring GxB_MIN_ISLT_INT64; +extern GrB_Semiring GxB_MIN_ISLT_UINT8; +extern GrB_Semiring GxB_MIN_ISLT_UINT16; +extern GrB_Semiring GxB_MIN_ISLT_UINT32; +extern GrB_Semiring GxB_MIN_ISLT_UINT64; +extern GrB_Semiring GxB_MIN_ISNE_FP32; +extern GrB_Semiring GxB_MIN_ISNE_FP64; +extern GrB_Semiring GxB_MIN_ISNE_INT8; +extern GrB_Semiring GxB_MIN_ISNE_INT16; +extern GrB_Semiring GxB_MIN_ISNE_INT32; +extern GrB_Semiring GxB_MIN_ISNE_INT64; +extern GrB_Semiring GxB_MIN_ISNE_UINT8; +extern GrB_Semiring GxB_MIN_ISNE_UINT16; +extern GrB_Semiring GxB_MIN_ISNE_UINT32; +extern GrB_Semiring GxB_MIN_ISNE_UINT64; +extern GrB_Semiring GxB_MIN_LAND_FP32; +extern GrB_Semiring GxB_MIN_LAND_FP64; +extern GrB_Semiring GxB_MIN_LAND_INT8; +extern GrB_Semiring GxB_MIN_LAND_INT16; +extern GrB_Semiring GxB_MIN_LAND_INT32; +extern GrB_Semiring GxB_MIN_LAND_INT64; +extern GrB_Semiring GxB_MIN_LAND_UINT8; +extern GrB_Semiring GxB_MIN_LAND_UINT16; +extern GrB_Semiring GxB_MIN_LAND_UINT32; +extern GrB_Semiring GxB_MIN_LAND_UINT64; +extern GrB_Semiring GxB_MIN_LOR_FP32; +extern GrB_Semiring GxB_MIN_LOR_FP64; +extern GrB_Semiring GxB_MIN_LOR_INT8; +extern GrB_Semiring GxB_MIN_LOR_INT16; +extern GrB_Semiring GxB_MIN_LOR_INT32; +extern GrB_Semiring GxB_MIN_LOR_INT64; +extern GrB_Semiring GxB_MIN_LOR_UINT8; +extern GrB_Semiring GxB_MIN_LOR_UINT16; +extern GrB_Semiring GxB_MIN_LOR_UINT32; +extern GrB_Semiring GxB_MIN_LOR_UINT64; +extern GrB_Semiring GxB_MIN_LXOR_FP32; +extern GrB_Semiring GxB_MIN_LXOR_FP64; +extern GrB_Semiring GxB_MIN_LXOR_INT8; +extern GrB_Semiring GxB_MIN_LXOR_INT16; +extern GrB_Semiring GxB_MIN_LXOR_INT32; +extern GrB_Semiring GxB_MIN_LXOR_INT64; +extern GrB_Semiring GxB_MIN_LXOR_UINT8; +extern GrB_Semiring GxB_MIN_LXOR_UINT16; +extern GrB_Semiring GxB_MIN_LXOR_UINT32; +extern GrB_Semiring GxB_MIN_LXOR_UINT64; +extern GrB_Semiring GxB_MIN_MINUS_FP32; +extern GrB_Semiring GxB_MIN_MINUS_FP64; +extern GrB_Semiring GxB_MIN_MINUS_INT8; +extern GrB_Semiring GxB_MIN_MINUS_INT16; +extern GrB_Semiring GxB_MIN_MINUS_INT32; +extern GrB_Semiring GxB_MIN_MINUS_INT64; +extern GrB_Semiring GxB_MIN_MINUS_UINT8; +extern GrB_Semiring GxB_MIN_MINUS_UINT16; +extern GrB_Semiring GxB_MIN_MINUS_UINT32; +extern GrB_Semiring GxB_MIN_MINUS_UINT64; +extern GrB_Semiring GxB_MIN_MIN_FP32; +extern GrB_Semiring GxB_MIN_MIN_FP64; +extern GrB_Semiring GxB_MIN_MIN_INT8; +extern GrB_Semiring GxB_MIN_MIN_INT16; +extern GrB_Semiring GxB_MIN_MIN_INT32; +extern GrB_Semiring GxB_MIN_MIN_INT64; +extern GrB_Semiring GxB_MIN_MIN_UINT8; +extern GrB_Semiring GxB_MIN_MIN_UINT16; +extern GrB_Semiring GxB_MIN_MIN_UINT32; +extern GrB_Semiring GxB_MIN_MIN_UINT64; +extern GrB_Semiring GxB_MIN_PAIR_FP32; +extern GrB_Semiring GxB_MIN_PAIR_FP64; +extern GrB_Semiring GxB_MIN_PAIR_INT8; +extern GrB_Semiring GxB_MIN_PAIR_INT16; +extern GrB_Semiring GxB_MIN_PAIR_INT32; +extern GrB_Semiring GxB_MIN_PAIR_INT64; +extern GrB_Semiring GxB_MIN_PAIR_UINT8; +extern GrB_Semiring GxB_MIN_PAIR_UINT16; +extern GrB_Semiring GxB_MIN_PAIR_UINT32; +extern GrB_Semiring GxB_MIN_PAIR_UINT64; +extern GrB_Semiring GxB_MIN_RDIV_FP32; +extern GrB_Semiring GxB_MIN_RDIV_FP64; +extern GrB_Semiring GxB_MIN_RDIV_INT8; +extern GrB_Semiring GxB_MIN_RDIV_INT16; +extern GrB_Semiring GxB_MIN_RDIV_INT32; +extern GrB_Semiring GxB_MIN_RDIV_INT64; +extern GrB_Semiring GxB_MIN_RDIV_UINT8; +extern GrB_Semiring GxB_MIN_RDIV_UINT16; +extern GrB_Semiring GxB_MIN_RDIV_UINT32; +extern GrB_Semiring GxB_MIN_RDIV_UINT64; +extern GrB_Semiring GxB_MIN_RMINUS_FP32; +extern GrB_Semiring GxB_MIN_RMINUS_FP64; +extern GrB_Semiring GxB_MIN_RMINUS_INT8; +extern GrB_Semiring GxB_MIN_RMINUS_INT16; +extern GrB_Semiring GxB_MIN_RMINUS_INT32; +extern GrB_Semiring GxB_MIN_RMINUS_INT64; +extern GrB_Semiring GxB_MIN_RMINUS_UINT8; +extern GrB_Semiring GxB_MIN_RMINUS_UINT16; +extern GrB_Semiring GxB_MIN_RMINUS_UINT32; +extern GrB_Semiring GxB_MIN_RMINUS_UINT64; +extern GrB_Semiring GxB_MIN_SECONDI1_INT32; +extern GrB_Semiring GxB_MIN_SECONDI1_INT64; +extern GrB_Semiring GxB_MIN_SECONDI_INT32; +extern GrB_Semiring GxB_MIN_SECONDI_INT64; +extern GrB_Semiring GxB_MIN_SECONDJ1_INT32; +extern GrB_Semiring GxB_MIN_SECONDJ1_INT64; +extern GrB_Semiring GxB_MIN_SECONDJ_INT32; +extern GrB_Semiring GxB_MIN_SECONDJ_INT64; +extern GrB_Semiring GxB_PLUS_DIV_FC32; +extern GrB_Semiring GxB_PLUS_DIV_FC64; +extern GrB_Semiring GxB_PLUS_DIV_FP32; +extern GrB_Semiring GxB_PLUS_DIV_FP64; +extern GrB_Semiring GxB_PLUS_DIV_INT8; +extern GrB_Semiring GxB_PLUS_DIV_INT16; +extern GrB_Semiring GxB_PLUS_DIV_INT32; +extern GrB_Semiring GxB_PLUS_DIV_INT64; +extern GrB_Semiring GxB_PLUS_DIV_UINT8; +extern GrB_Semiring GxB_PLUS_DIV_UINT16; +extern GrB_Semiring GxB_PLUS_DIV_UINT32; +extern GrB_Semiring GxB_PLUS_DIV_UINT64; +extern GrB_Semiring GxB_PLUS_FIRSTI1_INT32; +extern GrB_Semiring GxB_PLUS_FIRSTI1_INT64; +extern GrB_Semiring GxB_PLUS_FIRSTI_INT32; +extern GrB_Semiring GxB_PLUS_FIRSTI_INT64; +extern GrB_Semiring GxB_PLUS_FIRSTJ1_INT32; +extern GrB_Semiring GxB_PLUS_FIRSTJ1_INT64; +extern GrB_Semiring GxB_PLUS_FIRSTJ_INT32; +extern GrB_Semiring GxB_PLUS_FIRSTJ_INT64; +extern GrB_Semiring GxB_PLUS_FIRST_FC32; +extern GrB_Semiring GxB_PLUS_FIRST_FC64; +extern GrB_Semiring GxB_PLUS_FIRST_FP32; +extern GrB_Semiring GxB_PLUS_FIRST_FP64; +extern GrB_Semiring GxB_PLUS_FIRST_INT8; +extern GrB_Semiring GxB_PLUS_FIRST_INT16; +extern GrB_Semiring GxB_PLUS_FIRST_INT32; +extern GrB_Semiring GxB_PLUS_FIRST_INT64; +extern GrB_Semiring GxB_PLUS_FIRST_UINT8; +extern GrB_Semiring GxB_PLUS_FIRST_UINT16; +extern GrB_Semiring GxB_PLUS_FIRST_UINT32; +extern GrB_Semiring GxB_PLUS_FIRST_UINT64; +extern GrB_Semiring GxB_PLUS_ISEQ_FP32; +extern GrB_Semiring GxB_PLUS_ISEQ_FP64; +extern GrB_Semiring GxB_PLUS_ISEQ_INT8; +extern GrB_Semiring GxB_PLUS_ISEQ_INT16; +extern GrB_Semiring GxB_PLUS_ISEQ_INT32; +extern GrB_Semiring GxB_PLUS_ISEQ_INT64; +extern GrB_Semiring GxB_PLUS_ISEQ_UINT8; +extern GrB_Semiring GxB_PLUS_ISEQ_UINT16; +extern GrB_Semiring GxB_PLUS_ISEQ_UINT32; +extern GrB_Semiring GxB_PLUS_ISEQ_UINT64; +extern GrB_Semiring GxB_PLUS_ISGE_FP32; +extern GrB_Semiring GxB_PLUS_ISGE_FP64; +extern GrB_Semiring GxB_PLUS_ISGE_INT8; +extern GrB_Semiring GxB_PLUS_ISGE_INT16; +extern GrB_Semiring GxB_PLUS_ISGE_INT32; +extern GrB_Semiring GxB_PLUS_ISGE_INT64; +extern GrB_Semiring GxB_PLUS_ISGE_UINT8; +extern GrB_Semiring GxB_PLUS_ISGE_UINT16; +extern GrB_Semiring GxB_PLUS_ISGE_UINT32; +extern GrB_Semiring GxB_PLUS_ISGE_UINT64; +extern GrB_Semiring GxB_PLUS_ISGT_FP32; +extern GrB_Semiring GxB_PLUS_ISGT_FP64; +extern GrB_Semiring GxB_PLUS_ISGT_INT8; +extern GrB_Semiring GxB_PLUS_ISGT_INT16; +extern GrB_Semiring GxB_PLUS_ISGT_INT32; +extern GrB_Semiring GxB_PLUS_ISGT_INT64; +extern GrB_Semiring GxB_PLUS_ISGT_UINT8; +extern GrB_Semiring GxB_PLUS_ISGT_UINT16; +extern GrB_Semiring GxB_PLUS_ISGT_UINT32; +extern GrB_Semiring GxB_PLUS_ISGT_UINT64; +extern GrB_Semiring GxB_PLUS_ISLE_FP32; +extern GrB_Semiring GxB_PLUS_ISLE_FP64; +extern GrB_Semiring GxB_PLUS_ISLE_INT8; +extern GrB_Semiring GxB_PLUS_ISLE_INT16; +extern GrB_Semiring GxB_PLUS_ISLE_INT32; +extern GrB_Semiring GxB_PLUS_ISLE_INT64; +extern GrB_Semiring GxB_PLUS_ISLE_UINT8; +extern GrB_Semiring GxB_PLUS_ISLE_UINT16; +extern GrB_Semiring GxB_PLUS_ISLE_UINT32; +extern GrB_Semiring GxB_PLUS_ISLE_UINT64; +extern GrB_Semiring GxB_PLUS_ISLT_FP32; +extern GrB_Semiring GxB_PLUS_ISLT_FP64; +extern GrB_Semiring GxB_PLUS_ISLT_INT8; +extern GrB_Semiring GxB_PLUS_ISLT_INT16; +extern GrB_Semiring GxB_PLUS_ISLT_INT32; +extern GrB_Semiring GxB_PLUS_ISLT_INT64; +extern GrB_Semiring GxB_PLUS_ISLT_UINT8; +extern GrB_Semiring GxB_PLUS_ISLT_UINT16; +extern GrB_Semiring GxB_PLUS_ISLT_UINT32; +extern GrB_Semiring GxB_PLUS_ISLT_UINT64; +extern GrB_Semiring GxB_PLUS_ISNE_FP32; +extern GrB_Semiring GxB_PLUS_ISNE_FP64; +extern GrB_Semiring GxB_PLUS_ISNE_INT8; +extern GrB_Semiring GxB_PLUS_ISNE_INT16; +extern GrB_Semiring GxB_PLUS_ISNE_INT32; +extern GrB_Semiring GxB_PLUS_ISNE_INT64; +extern GrB_Semiring GxB_PLUS_ISNE_UINT8; +extern GrB_Semiring GxB_PLUS_ISNE_UINT16; +extern GrB_Semiring GxB_PLUS_ISNE_UINT32; +extern GrB_Semiring GxB_PLUS_ISNE_UINT64; +extern GrB_Semiring GxB_PLUS_LAND_FP32; +extern GrB_Semiring GxB_PLUS_LAND_FP64; +extern GrB_Semiring GxB_PLUS_LAND_INT8; +extern GrB_Semiring GxB_PLUS_LAND_INT16; +extern GrB_Semiring GxB_PLUS_LAND_INT32; +extern GrB_Semiring GxB_PLUS_LAND_INT64; +extern GrB_Semiring GxB_PLUS_LAND_UINT8; +extern GrB_Semiring GxB_PLUS_LAND_UINT16; +extern GrB_Semiring GxB_PLUS_LAND_UINT32; +extern GrB_Semiring GxB_PLUS_LAND_UINT64; +extern GrB_Semiring GxB_PLUS_LOR_FP32; +extern GrB_Semiring GxB_PLUS_LOR_FP64; +extern GrB_Semiring GxB_PLUS_LOR_INT8; +extern GrB_Semiring GxB_PLUS_LOR_INT16; +extern GrB_Semiring GxB_PLUS_LOR_INT32; +extern GrB_Semiring GxB_PLUS_LOR_INT64; +extern GrB_Semiring GxB_PLUS_LOR_UINT8; +extern GrB_Semiring GxB_PLUS_LOR_UINT16; +extern GrB_Semiring GxB_PLUS_LOR_UINT32; +extern GrB_Semiring GxB_PLUS_LOR_UINT64; +extern GrB_Semiring GxB_PLUS_LXOR_FP32; +extern GrB_Semiring GxB_PLUS_LXOR_FP64; +extern GrB_Semiring GxB_PLUS_LXOR_INT8; +extern GrB_Semiring GxB_PLUS_LXOR_INT16; +extern GrB_Semiring GxB_PLUS_LXOR_INT32; +extern GrB_Semiring GxB_PLUS_LXOR_INT64; +extern GrB_Semiring GxB_PLUS_LXOR_UINT8; +extern GrB_Semiring GxB_PLUS_LXOR_UINT16; +extern GrB_Semiring GxB_PLUS_LXOR_UINT32; +extern GrB_Semiring GxB_PLUS_LXOR_UINT64; +extern GrB_Semiring GxB_PLUS_MAX_FP32; +extern GrB_Semiring GxB_PLUS_MAX_FP64; +extern GrB_Semiring GxB_PLUS_MAX_INT8; +extern GrB_Semiring GxB_PLUS_MAX_INT16; +extern GrB_Semiring GxB_PLUS_MAX_INT32; +extern GrB_Semiring GxB_PLUS_MAX_INT64; +extern GrB_Semiring GxB_PLUS_MAX_UINT8; +extern GrB_Semiring GxB_PLUS_MAX_UINT16; +extern GrB_Semiring GxB_PLUS_MAX_UINT32; +extern GrB_Semiring GxB_PLUS_MAX_UINT64; +extern GrB_Semiring GxB_PLUS_MINUS_FC32; +extern GrB_Semiring GxB_PLUS_MINUS_FC64; +extern GrB_Semiring GxB_PLUS_MINUS_FP32; +extern GrB_Semiring GxB_PLUS_MINUS_FP64; +extern GrB_Semiring GxB_PLUS_MINUS_INT8; +extern GrB_Semiring GxB_PLUS_MINUS_INT16; +extern GrB_Semiring GxB_PLUS_MINUS_INT32; +extern GrB_Semiring GxB_PLUS_MINUS_INT64; +extern GrB_Semiring GxB_PLUS_MINUS_UINT8; +extern GrB_Semiring GxB_PLUS_MINUS_UINT16; +extern GrB_Semiring GxB_PLUS_MINUS_UINT32; +extern GrB_Semiring GxB_PLUS_MINUS_UINT64; +extern GrB_Semiring GxB_PLUS_PAIR_FC32; +extern GrB_Semiring GxB_PLUS_PAIR_FC64; +extern GrB_Semiring GxB_PLUS_PAIR_FP32; +extern GrB_Semiring GxB_PLUS_PAIR_FP64; +extern GrB_Semiring GxB_PLUS_PAIR_INT8; +extern GrB_Semiring GxB_PLUS_PAIR_INT16; +extern GrB_Semiring GxB_PLUS_PAIR_INT32; +extern GrB_Semiring GxB_PLUS_PAIR_INT64; +extern GrB_Semiring GxB_PLUS_PAIR_UINT8; +extern GrB_Semiring GxB_PLUS_PAIR_UINT16; +extern GrB_Semiring GxB_PLUS_PAIR_UINT32; +extern GrB_Semiring GxB_PLUS_PAIR_UINT64; +extern GrB_Semiring GxB_PLUS_PLUS_FC32; +extern GrB_Semiring GxB_PLUS_PLUS_FC64; +extern GrB_Semiring GxB_PLUS_PLUS_FP32; +extern GrB_Semiring GxB_PLUS_PLUS_FP64; +extern GrB_Semiring GxB_PLUS_PLUS_INT8; +extern GrB_Semiring GxB_PLUS_PLUS_INT16; +extern GrB_Semiring GxB_PLUS_PLUS_INT32; +extern GrB_Semiring GxB_PLUS_PLUS_INT64; +extern GrB_Semiring GxB_PLUS_PLUS_UINT8; +extern GrB_Semiring GxB_PLUS_PLUS_UINT16; +extern GrB_Semiring GxB_PLUS_PLUS_UINT32; +extern GrB_Semiring GxB_PLUS_PLUS_UINT64; +extern GrB_Semiring GxB_PLUS_RDIV_FC32; +extern GrB_Semiring GxB_PLUS_RDIV_FC64; +extern GrB_Semiring GxB_PLUS_RDIV_FP32; +extern GrB_Semiring GxB_PLUS_RDIV_FP64; +extern GrB_Semiring GxB_PLUS_RDIV_INT8; +extern GrB_Semiring GxB_PLUS_RDIV_INT16; +extern GrB_Semiring GxB_PLUS_RDIV_INT32; +extern GrB_Semiring GxB_PLUS_RDIV_INT64; +extern GrB_Semiring GxB_PLUS_RDIV_UINT8; +extern GrB_Semiring GxB_PLUS_RDIV_UINT16; +extern GrB_Semiring GxB_PLUS_RDIV_UINT32; +extern GrB_Semiring GxB_PLUS_RDIV_UINT64; +extern GrB_Semiring GxB_PLUS_RMINUS_FC32; +extern GrB_Semiring GxB_PLUS_RMINUS_FC64; +extern GrB_Semiring GxB_PLUS_RMINUS_FP32; +extern GrB_Semiring GxB_PLUS_RMINUS_FP64; +extern GrB_Semiring GxB_PLUS_RMINUS_INT8; +extern GrB_Semiring GxB_PLUS_RMINUS_INT16; +extern GrB_Semiring GxB_PLUS_RMINUS_INT32; +extern GrB_Semiring GxB_PLUS_RMINUS_INT64; +extern GrB_Semiring GxB_PLUS_RMINUS_UINT8; +extern GrB_Semiring GxB_PLUS_RMINUS_UINT16; +extern GrB_Semiring GxB_PLUS_RMINUS_UINT32; +extern GrB_Semiring GxB_PLUS_RMINUS_UINT64; +extern GrB_Semiring GxB_PLUS_SECONDI1_INT32; +extern GrB_Semiring GxB_PLUS_SECONDI1_INT64; +extern GrB_Semiring GxB_PLUS_SECONDI_INT32; +extern GrB_Semiring GxB_PLUS_SECONDI_INT64; +extern GrB_Semiring GxB_PLUS_SECONDJ1_INT32; +extern GrB_Semiring GxB_PLUS_SECONDJ1_INT64; +extern GrB_Semiring GxB_PLUS_SECONDJ_INT32; +extern GrB_Semiring GxB_PLUS_SECONDJ_INT64; +extern GrB_Semiring GxB_PLUS_SECOND_FC32; +extern GrB_Semiring GxB_PLUS_SECOND_FC64; +extern GrB_Semiring GxB_PLUS_SECOND_FP32; +extern GrB_Semiring GxB_PLUS_SECOND_FP64; +extern GrB_Semiring GxB_PLUS_SECOND_INT8; +extern GrB_Semiring GxB_PLUS_SECOND_INT16; +extern GrB_Semiring GxB_PLUS_SECOND_INT32; +extern GrB_Semiring GxB_PLUS_SECOND_INT64; +extern GrB_Semiring GxB_PLUS_SECOND_UINT8; +extern GrB_Semiring GxB_PLUS_SECOND_UINT16; +extern GrB_Semiring GxB_PLUS_SECOND_UINT32; +extern GrB_Semiring GxB_PLUS_SECOND_UINT64; +extern GrB_Semiring GxB_PLUS_TIMES_FC32; +extern GrB_Semiring GxB_PLUS_TIMES_FC64; +extern GrB_Semiring GxB_TIMES_DIV_FC32; +extern GrB_Semiring GxB_TIMES_DIV_FC64; +extern GrB_Semiring GxB_TIMES_DIV_FP32; +extern GrB_Semiring GxB_TIMES_DIV_FP64; +extern GrB_Semiring GxB_TIMES_DIV_INT8; +extern GrB_Semiring GxB_TIMES_DIV_INT16; +extern GrB_Semiring GxB_TIMES_DIV_INT32; +extern GrB_Semiring GxB_TIMES_DIV_INT64; +extern GrB_Semiring GxB_TIMES_DIV_UINT8; +extern GrB_Semiring GxB_TIMES_DIV_UINT16; +extern GrB_Semiring GxB_TIMES_DIV_UINT32; +extern GrB_Semiring GxB_TIMES_DIV_UINT64; +extern GrB_Semiring GxB_TIMES_FIRSTI1_INT32; +extern GrB_Semiring GxB_TIMES_FIRSTI1_INT64; +extern GrB_Semiring GxB_TIMES_FIRSTI_INT32; +extern GrB_Semiring GxB_TIMES_FIRSTI_INT64; +extern GrB_Semiring GxB_TIMES_FIRSTJ1_INT32; +extern GrB_Semiring GxB_TIMES_FIRSTJ1_INT64; +extern GrB_Semiring GxB_TIMES_FIRSTJ_INT32; +extern GrB_Semiring GxB_TIMES_FIRSTJ_INT64; +extern GrB_Semiring GxB_TIMES_FIRST_FC32; +extern GrB_Semiring GxB_TIMES_FIRST_FC64; +extern GrB_Semiring GxB_TIMES_FIRST_FP32; +extern GrB_Semiring GxB_TIMES_FIRST_FP64; +extern GrB_Semiring GxB_TIMES_FIRST_INT8; +extern GrB_Semiring GxB_TIMES_FIRST_INT16; +extern GrB_Semiring GxB_TIMES_FIRST_INT32; +extern GrB_Semiring GxB_TIMES_FIRST_INT64; +extern GrB_Semiring GxB_TIMES_FIRST_UINT8; +extern GrB_Semiring GxB_TIMES_FIRST_UINT16; +extern GrB_Semiring GxB_TIMES_FIRST_UINT32; +extern GrB_Semiring GxB_TIMES_FIRST_UINT64; +extern GrB_Semiring GxB_TIMES_ISEQ_FP32; +extern GrB_Semiring GxB_TIMES_ISEQ_FP64; +extern GrB_Semiring GxB_TIMES_ISEQ_INT8; +extern GrB_Semiring GxB_TIMES_ISEQ_INT16; +extern GrB_Semiring GxB_TIMES_ISEQ_INT32; +extern GrB_Semiring GxB_TIMES_ISEQ_INT64; +extern GrB_Semiring GxB_TIMES_ISEQ_UINT8; +extern GrB_Semiring GxB_TIMES_ISEQ_UINT16; +extern GrB_Semiring GxB_TIMES_ISEQ_UINT32; +extern GrB_Semiring GxB_TIMES_ISEQ_UINT64; +extern GrB_Semiring GxB_TIMES_ISGE_FP32; +extern GrB_Semiring GxB_TIMES_ISGE_FP64; +extern GrB_Semiring GxB_TIMES_ISGE_INT8; +extern GrB_Semiring GxB_TIMES_ISGE_INT16; +extern GrB_Semiring GxB_TIMES_ISGE_INT32; +extern GrB_Semiring GxB_TIMES_ISGE_INT64; +extern GrB_Semiring GxB_TIMES_ISGE_UINT8; +extern GrB_Semiring GxB_TIMES_ISGE_UINT16; +extern GrB_Semiring GxB_TIMES_ISGE_UINT32; +extern GrB_Semiring GxB_TIMES_ISGE_UINT64; +extern GrB_Semiring GxB_TIMES_ISGT_FP32; +extern GrB_Semiring GxB_TIMES_ISGT_FP64; +extern GrB_Semiring GxB_TIMES_ISGT_INT8; +extern GrB_Semiring GxB_TIMES_ISGT_INT16; +extern GrB_Semiring GxB_TIMES_ISGT_INT32; +extern GrB_Semiring GxB_TIMES_ISGT_INT64; +extern GrB_Semiring GxB_TIMES_ISGT_UINT8; +extern GrB_Semiring GxB_TIMES_ISGT_UINT16; +extern GrB_Semiring GxB_TIMES_ISGT_UINT32; +extern GrB_Semiring GxB_TIMES_ISGT_UINT64; +extern GrB_Semiring GxB_TIMES_ISLE_FP32; +extern GrB_Semiring GxB_TIMES_ISLE_FP64; +extern GrB_Semiring GxB_TIMES_ISLE_INT8; +extern GrB_Semiring GxB_TIMES_ISLE_INT16; +extern GrB_Semiring GxB_TIMES_ISLE_INT32; +extern GrB_Semiring GxB_TIMES_ISLE_INT64; +extern GrB_Semiring GxB_TIMES_ISLE_UINT8; +extern GrB_Semiring GxB_TIMES_ISLE_UINT16; +extern GrB_Semiring GxB_TIMES_ISLE_UINT32; +extern GrB_Semiring GxB_TIMES_ISLE_UINT64; +extern GrB_Semiring GxB_TIMES_ISLT_FP32; +extern GrB_Semiring GxB_TIMES_ISLT_FP64; +extern GrB_Semiring GxB_TIMES_ISLT_INT8; +extern GrB_Semiring GxB_TIMES_ISLT_INT16; +extern GrB_Semiring GxB_TIMES_ISLT_INT32; +extern GrB_Semiring GxB_TIMES_ISLT_INT64; +extern GrB_Semiring GxB_TIMES_ISLT_UINT8; +extern GrB_Semiring GxB_TIMES_ISLT_UINT16; +extern GrB_Semiring GxB_TIMES_ISLT_UINT32; +extern GrB_Semiring GxB_TIMES_ISLT_UINT64; +extern GrB_Semiring GxB_TIMES_ISNE_FP32; +extern GrB_Semiring GxB_TIMES_ISNE_FP64; +extern GrB_Semiring GxB_TIMES_ISNE_INT8; +extern GrB_Semiring GxB_TIMES_ISNE_INT16; +extern GrB_Semiring GxB_TIMES_ISNE_INT32; +extern GrB_Semiring GxB_TIMES_ISNE_INT64; +extern GrB_Semiring GxB_TIMES_ISNE_UINT8; +extern GrB_Semiring GxB_TIMES_ISNE_UINT16; +extern GrB_Semiring GxB_TIMES_ISNE_UINT32; +extern GrB_Semiring GxB_TIMES_ISNE_UINT64; +extern GrB_Semiring GxB_TIMES_LAND_FP32; +extern GrB_Semiring GxB_TIMES_LAND_FP64; +extern GrB_Semiring GxB_TIMES_LAND_INT8; +extern GrB_Semiring GxB_TIMES_LAND_INT16; +extern GrB_Semiring GxB_TIMES_LAND_INT32; +extern GrB_Semiring GxB_TIMES_LAND_INT64; +extern GrB_Semiring GxB_TIMES_LAND_UINT8; +extern GrB_Semiring GxB_TIMES_LAND_UINT16; +extern GrB_Semiring GxB_TIMES_LAND_UINT32; +extern GrB_Semiring GxB_TIMES_LAND_UINT64; +extern GrB_Semiring GxB_TIMES_LOR_FP32; +extern GrB_Semiring GxB_TIMES_LOR_FP64; +extern GrB_Semiring GxB_TIMES_LOR_INT8; +extern GrB_Semiring GxB_TIMES_LOR_INT16; +extern GrB_Semiring GxB_TIMES_LOR_INT32; +extern GrB_Semiring GxB_TIMES_LOR_INT64; +extern GrB_Semiring GxB_TIMES_LOR_UINT8; +extern GrB_Semiring GxB_TIMES_LOR_UINT16; +extern GrB_Semiring GxB_TIMES_LOR_UINT32; +extern GrB_Semiring GxB_TIMES_LOR_UINT64; +extern GrB_Semiring GxB_TIMES_LXOR_FP32; +extern GrB_Semiring GxB_TIMES_LXOR_FP64; +extern GrB_Semiring GxB_TIMES_LXOR_INT8; +extern GrB_Semiring GxB_TIMES_LXOR_INT16; +extern GrB_Semiring GxB_TIMES_LXOR_INT32; +extern GrB_Semiring GxB_TIMES_LXOR_INT64; +extern GrB_Semiring GxB_TIMES_LXOR_UINT8; +extern GrB_Semiring GxB_TIMES_LXOR_UINT16; +extern GrB_Semiring GxB_TIMES_LXOR_UINT32; +extern GrB_Semiring GxB_TIMES_LXOR_UINT64; +extern GrB_Semiring GxB_TIMES_MAX_FP32; +extern GrB_Semiring GxB_TIMES_MAX_FP64; +extern GrB_Semiring GxB_TIMES_MAX_INT8; +extern GrB_Semiring GxB_TIMES_MAX_INT16; +extern GrB_Semiring GxB_TIMES_MAX_INT32; +extern GrB_Semiring GxB_TIMES_MAX_INT64; +extern GrB_Semiring GxB_TIMES_MAX_UINT8; +extern GrB_Semiring GxB_TIMES_MAX_UINT16; +extern GrB_Semiring GxB_TIMES_MAX_UINT32; +extern GrB_Semiring GxB_TIMES_MAX_UINT64; +extern GrB_Semiring GxB_TIMES_MINUS_FC32; +extern GrB_Semiring GxB_TIMES_MINUS_FC64; +extern GrB_Semiring GxB_TIMES_MINUS_FP32; +extern GrB_Semiring GxB_TIMES_MINUS_FP64; +extern GrB_Semiring GxB_TIMES_MINUS_INT8; +extern GrB_Semiring GxB_TIMES_MINUS_INT16; +extern GrB_Semiring GxB_TIMES_MINUS_INT32; +extern GrB_Semiring GxB_TIMES_MINUS_INT64; +extern GrB_Semiring GxB_TIMES_MINUS_UINT8; +extern GrB_Semiring GxB_TIMES_MINUS_UINT16; +extern GrB_Semiring GxB_TIMES_MINUS_UINT32; +extern GrB_Semiring GxB_TIMES_MINUS_UINT64; +extern GrB_Semiring GxB_TIMES_MIN_FP32; +extern GrB_Semiring GxB_TIMES_MIN_FP64; +extern GrB_Semiring GxB_TIMES_MIN_INT8; +extern GrB_Semiring GxB_TIMES_MIN_INT16; +extern GrB_Semiring GxB_TIMES_MIN_INT32; +extern GrB_Semiring GxB_TIMES_MIN_INT64; +extern GrB_Semiring GxB_TIMES_MIN_UINT8; +extern GrB_Semiring GxB_TIMES_MIN_UINT16; +extern GrB_Semiring GxB_TIMES_MIN_UINT32; +extern GrB_Semiring GxB_TIMES_MIN_UINT64; +extern GrB_Semiring GxB_TIMES_PAIR_FC32; +extern GrB_Semiring GxB_TIMES_PAIR_FC64; +extern GrB_Semiring GxB_TIMES_PAIR_FP32; +extern GrB_Semiring GxB_TIMES_PAIR_FP64; +extern GrB_Semiring GxB_TIMES_PAIR_INT8; +extern GrB_Semiring GxB_TIMES_PAIR_INT16; +extern GrB_Semiring GxB_TIMES_PAIR_INT32; +extern GrB_Semiring GxB_TIMES_PAIR_INT64; +extern GrB_Semiring GxB_TIMES_PAIR_UINT8; +extern GrB_Semiring GxB_TIMES_PAIR_UINT16; +extern GrB_Semiring GxB_TIMES_PAIR_UINT32; +extern GrB_Semiring GxB_TIMES_PAIR_UINT64; +extern GrB_Semiring GxB_TIMES_PLUS_FC32; +extern GrB_Semiring GxB_TIMES_PLUS_FC64; +extern GrB_Semiring GxB_TIMES_PLUS_FP32; +extern GrB_Semiring GxB_TIMES_PLUS_FP64; +extern GrB_Semiring GxB_TIMES_PLUS_INT8; +extern GrB_Semiring GxB_TIMES_PLUS_INT16; +extern GrB_Semiring GxB_TIMES_PLUS_INT32; +extern GrB_Semiring GxB_TIMES_PLUS_INT64; +extern GrB_Semiring GxB_TIMES_PLUS_UINT8; +extern GrB_Semiring GxB_TIMES_PLUS_UINT16; +extern GrB_Semiring GxB_TIMES_PLUS_UINT32; +extern GrB_Semiring GxB_TIMES_PLUS_UINT64; +extern GrB_Semiring GxB_TIMES_RDIV_FC32; +extern GrB_Semiring GxB_TIMES_RDIV_FC64; +extern GrB_Semiring GxB_TIMES_RDIV_FP32; +extern GrB_Semiring GxB_TIMES_RDIV_FP64; +extern GrB_Semiring GxB_TIMES_RDIV_INT8; +extern GrB_Semiring GxB_TIMES_RDIV_INT16; +extern GrB_Semiring GxB_TIMES_RDIV_INT32; +extern GrB_Semiring GxB_TIMES_RDIV_INT64; +extern GrB_Semiring GxB_TIMES_RDIV_UINT8; +extern GrB_Semiring GxB_TIMES_RDIV_UINT16; +extern GrB_Semiring GxB_TIMES_RDIV_UINT32; +extern GrB_Semiring GxB_TIMES_RDIV_UINT64; +extern GrB_Semiring GxB_TIMES_RMINUS_FC32; +extern GrB_Semiring GxB_TIMES_RMINUS_FC64; +extern GrB_Semiring GxB_TIMES_RMINUS_FP32; +extern GrB_Semiring GxB_TIMES_RMINUS_FP64; +extern GrB_Semiring GxB_TIMES_RMINUS_INT8; +extern GrB_Semiring GxB_TIMES_RMINUS_INT16; +extern GrB_Semiring GxB_TIMES_RMINUS_INT32; +extern GrB_Semiring GxB_TIMES_RMINUS_INT64; +extern GrB_Semiring GxB_TIMES_RMINUS_UINT8; +extern GrB_Semiring GxB_TIMES_RMINUS_UINT16; +extern GrB_Semiring GxB_TIMES_RMINUS_UINT32; +extern GrB_Semiring GxB_TIMES_RMINUS_UINT64; +extern GrB_Semiring GxB_TIMES_SECONDI1_INT32; +extern GrB_Semiring GxB_TIMES_SECONDI1_INT64; +extern GrB_Semiring GxB_TIMES_SECONDI_INT32; +extern GrB_Semiring GxB_TIMES_SECONDI_INT64; +extern GrB_Semiring GxB_TIMES_SECONDJ1_INT32; +extern GrB_Semiring GxB_TIMES_SECONDJ1_INT64; +extern GrB_Semiring GxB_TIMES_SECONDJ_INT32; +extern GrB_Semiring GxB_TIMES_SECONDJ_INT64; +extern GrB_Semiring GxB_TIMES_SECOND_FC32; +extern GrB_Semiring GxB_TIMES_SECOND_FC64; +extern GrB_Semiring GxB_TIMES_SECOND_FP32; +extern GrB_Semiring GxB_TIMES_SECOND_FP64; +extern GrB_Semiring GxB_TIMES_SECOND_INT8; +extern GrB_Semiring GxB_TIMES_SECOND_INT16; +extern GrB_Semiring GxB_TIMES_SECOND_INT32; +extern GrB_Semiring GxB_TIMES_SECOND_INT64; +extern GrB_Semiring GxB_TIMES_SECOND_UINT8; +extern GrB_Semiring GxB_TIMES_SECOND_UINT16; +extern GrB_Semiring GxB_TIMES_SECOND_UINT32; +extern GrB_Semiring GxB_TIMES_SECOND_UINT64; +extern GrB_Semiring GxB_TIMES_TIMES_FC32; +extern GrB_Semiring GxB_TIMES_TIMES_FC64; +extern GrB_Semiring GxB_TIMES_TIMES_FP32; +extern GrB_Semiring GxB_TIMES_TIMES_FP64; +extern GrB_Semiring GxB_TIMES_TIMES_INT8; +extern GrB_Semiring GxB_TIMES_TIMES_INT16; +extern GrB_Semiring GxB_TIMES_TIMES_INT32; +extern GrB_Semiring GxB_TIMES_TIMES_INT64; +extern GrB_Semiring GxB_TIMES_TIMES_UINT8; +extern GrB_Semiring GxB_TIMES_TIMES_UINT16; +extern GrB_Semiring GxB_TIMES_TIMES_UINT32; +extern GrB_Semiring GxB_TIMES_TIMES_UINT64; +extern GrB_Type GxB_FC32; +extern GrB_Type GxB_FC64; +extern GrB_UnaryOp GxB_ABS_FC32; +extern GrB_UnaryOp GxB_ABS_FC64; +extern GrB_UnaryOp GxB_ACOSH_FC32; +extern GrB_UnaryOp GxB_ACOSH_FC64; +extern GrB_UnaryOp GxB_ACOSH_FP32; +extern GrB_UnaryOp GxB_ACOSH_FP64; +extern GrB_UnaryOp GxB_ACOS_FC32; +extern GrB_UnaryOp GxB_ACOS_FC64; +extern GrB_UnaryOp GxB_ACOS_FP32; +extern GrB_UnaryOp GxB_ACOS_FP64; +extern GrB_UnaryOp GxB_AINV_FC32; +extern GrB_UnaryOp GxB_AINV_FC64; +extern GrB_UnaryOp GxB_ASINH_FC32; +extern GrB_UnaryOp GxB_ASINH_FC64; +extern GrB_UnaryOp GxB_ASINH_FP32; +extern GrB_UnaryOp GxB_ASINH_FP64; +extern GrB_UnaryOp GxB_ASIN_FC32; +extern GrB_UnaryOp GxB_ASIN_FC64; +extern GrB_UnaryOp GxB_ASIN_FP32; +extern GrB_UnaryOp GxB_ASIN_FP64; +extern GrB_UnaryOp GxB_ATANH_FC32; +extern GrB_UnaryOp GxB_ATANH_FC64; +extern GrB_UnaryOp GxB_ATANH_FP32; +extern GrB_UnaryOp GxB_ATANH_FP64; +extern GrB_UnaryOp GxB_ATAN_FC32; +extern GrB_UnaryOp GxB_ATAN_FC64; +extern GrB_UnaryOp GxB_ATAN_FP32; +extern GrB_UnaryOp GxB_ATAN_FP64; +extern GrB_UnaryOp GxB_CARG_FC32; +extern GrB_UnaryOp GxB_CARG_FC64; +extern GrB_UnaryOp GxB_CBRT_FP32; +extern GrB_UnaryOp GxB_CBRT_FP64; +extern GrB_UnaryOp GxB_CEIL_FC32; +extern GrB_UnaryOp GxB_CEIL_FC64; +extern GrB_UnaryOp GxB_CEIL_FP32; +extern GrB_UnaryOp GxB_CEIL_FP64; +extern GrB_UnaryOp GxB_CIMAG_FC32; +extern GrB_UnaryOp GxB_CIMAG_FC64; +extern GrB_UnaryOp GxB_CONJ_FC32; +extern GrB_UnaryOp GxB_CONJ_FC64; +extern GrB_UnaryOp GxB_COSH_FC32; +extern GrB_UnaryOp GxB_COSH_FC64; +extern GrB_UnaryOp GxB_COSH_FP32; +extern GrB_UnaryOp GxB_COSH_FP64; +extern GrB_UnaryOp GxB_COS_FC32; +extern GrB_UnaryOp GxB_COS_FC64; +extern GrB_UnaryOp GxB_COS_FP32; +extern GrB_UnaryOp GxB_COS_FP64; +extern GrB_UnaryOp GxB_CREAL_FC32; +extern GrB_UnaryOp GxB_CREAL_FC64; +extern GrB_UnaryOp GxB_ERFC_FP32; +extern GrB_UnaryOp GxB_ERFC_FP64; +extern GrB_UnaryOp GxB_ERF_FP32; +extern GrB_UnaryOp GxB_ERF_FP64; +extern GrB_UnaryOp GxB_EXP2_FC32; +extern GrB_UnaryOp GxB_EXP2_FC64; +extern GrB_UnaryOp GxB_EXP2_FP32; +extern GrB_UnaryOp GxB_EXP2_FP64; +extern GrB_UnaryOp GxB_EXPM1_FC32; +extern GrB_UnaryOp GxB_EXPM1_FC64; +extern GrB_UnaryOp GxB_EXPM1_FP32; +extern GrB_UnaryOp GxB_EXPM1_FP64; +extern GrB_UnaryOp GxB_EXP_FC32; +extern GrB_UnaryOp GxB_EXP_FC64; +extern GrB_UnaryOp GxB_EXP_FP32; +extern GrB_UnaryOp GxB_EXP_FP64; +extern GrB_UnaryOp GxB_FLOOR_FC32; +extern GrB_UnaryOp GxB_FLOOR_FC64; +extern GrB_UnaryOp GxB_FLOOR_FP32; +extern GrB_UnaryOp GxB_FLOOR_FP64; +extern GrB_UnaryOp GxB_FREXPE_FP32; +extern GrB_UnaryOp GxB_FREXPE_FP64; +extern GrB_UnaryOp GxB_FREXPX_FP32; +extern GrB_UnaryOp GxB_FREXPX_FP64; +extern GrB_UnaryOp GxB_IDENTITY_FC32; +extern GrB_UnaryOp GxB_IDENTITY_FC64; +extern GrB_UnaryOp GxB_ISFINITE_FC32; +extern GrB_UnaryOp GxB_ISFINITE_FC64; +extern GrB_UnaryOp GxB_ISFINITE_FP32; +extern GrB_UnaryOp GxB_ISFINITE_FP64; +extern GrB_UnaryOp GxB_ISINF_FC32; +extern GrB_UnaryOp GxB_ISINF_FC64; +extern GrB_UnaryOp GxB_ISINF_FP32; +extern GrB_UnaryOp GxB_ISINF_FP64; +extern GrB_UnaryOp GxB_ISNAN_FC32; +extern GrB_UnaryOp GxB_ISNAN_FC64; +extern GrB_UnaryOp GxB_ISNAN_FP32; +extern GrB_UnaryOp GxB_ISNAN_FP64; +extern GrB_UnaryOp GxB_LGAMMA_FP32; +extern GrB_UnaryOp GxB_LGAMMA_FP64; +extern GrB_UnaryOp GxB_LNOT_BOOL; +extern GrB_UnaryOp GxB_LNOT_FP32; +extern GrB_UnaryOp GxB_LNOT_FP64; +extern GrB_UnaryOp GxB_LNOT_INT8; +extern GrB_UnaryOp GxB_LNOT_INT16; +extern GrB_UnaryOp GxB_LNOT_INT32; +extern GrB_UnaryOp GxB_LNOT_INT64; +extern GrB_UnaryOp GxB_LNOT_UINT8; +extern GrB_UnaryOp GxB_LNOT_UINT16; +extern GrB_UnaryOp GxB_LNOT_UINT32; +extern GrB_UnaryOp GxB_LNOT_UINT64; +extern GrB_UnaryOp GxB_LOG10_FC32; +extern GrB_UnaryOp GxB_LOG10_FC64; +extern GrB_UnaryOp GxB_LOG10_FP32; +extern GrB_UnaryOp GxB_LOG10_FP64; +extern GrB_UnaryOp GxB_LOG1P_FC32; +extern GrB_UnaryOp GxB_LOG1P_FC64; +extern GrB_UnaryOp GxB_LOG1P_FP32; +extern GrB_UnaryOp GxB_LOG1P_FP64; +extern GrB_UnaryOp GxB_LOG2_FC32; +extern GrB_UnaryOp GxB_LOG2_FC64; +extern GrB_UnaryOp GxB_LOG2_FP32; +extern GrB_UnaryOp GxB_LOG2_FP64; +extern GrB_UnaryOp GxB_LOG_FC32; +extern GrB_UnaryOp GxB_LOG_FC64; +extern GrB_UnaryOp GxB_LOG_FP32; +extern GrB_UnaryOp GxB_LOG_FP64; +extern GrB_UnaryOp GxB_MINV_FC32; +extern GrB_UnaryOp GxB_MINV_FC64; +extern GrB_UnaryOp GxB_ONE_BOOL; +extern GrB_UnaryOp GxB_ONE_FC32; +extern GrB_UnaryOp GxB_ONE_FC64; +extern GrB_UnaryOp GxB_ONE_FP32; +extern GrB_UnaryOp GxB_ONE_FP64; +extern GrB_UnaryOp GxB_ONE_INT8; +extern GrB_UnaryOp GxB_ONE_INT16; +extern GrB_UnaryOp GxB_ONE_INT32; +extern GrB_UnaryOp GxB_ONE_INT64; +extern GrB_UnaryOp GxB_ONE_UINT8; +extern GrB_UnaryOp GxB_ONE_UINT16; +extern GrB_UnaryOp GxB_ONE_UINT32; +extern GrB_UnaryOp GxB_ONE_UINT64; +extern GrB_UnaryOp GxB_POSITIONI1_INT32; +extern GrB_UnaryOp GxB_POSITIONI1_INT64; +extern GrB_UnaryOp GxB_POSITIONI_INT32; +extern GrB_UnaryOp GxB_POSITIONI_INT64; +extern GrB_UnaryOp GxB_POSITIONJ1_INT32; +extern GrB_UnaryOp GxB_POSITIONJ1_INT64; +extern GrB_UnaryOp GxB_POSITIONJ_INT32; +extern GrB_UnaryOp GxB_POSITIONJ_INT64; +extern GrB_UnaryOp GxB_ROUND_FC32; +extern GrB_UnaryOp GxB_ROUND_FC64; +extern GrB_UnaryOp GxB_ROUND_FP32; +extern GrB_UnaryOp GxB_ROUND_FP64; +extern GrB_UnaryOp GxB_SIGNUM_FC32; +extern GrB_UnaryOp GxB_SIGNUM_FC64; +extern GrB_UnaryOp GxB_SIGNUM_FP32; +extern GrB_UnaryOp GxB_SIGNUM_FP64; +extern GrB_UnaryOp GxB_SINH_FC32; +extern GrB_UnaryOp GxB_SINH_FC64; +extern GrB_UnaryOp GxB_SINH_FP32; +extern GrB_UnaryOp GxB_SINH_FP64; +extern GrB_UnaryOp GxB_SIN_FC32; +extern GrB_UnaryOp GxB_SIN_FC64; +extern GrB_UnaryOp GxB_SIN_FP32; +extern GrB_UnaryOp GxB_SIN_FP64; +extern GrB_UnaryOp GxB_SQRT_FC32; +extern GrB_UnaryOp GxB_SQRT_FC64; +extern GrB_UnaryOp GxB_SQRT_FP32; +extern GrB_UnaryOp GxB_SQRT_FP64; +extern GrB_UnaryOp GxB_TANH_FC32; +extern GrB_UnaryOp GxB_TANH_FC64; +extern GrB_UnaryOp GxB_TANH_FP32; +extern GrB_UnaryOp GxB_TANH_FP64; +extern GrB_UnaryOp GxB_TAN_FC32; +extern GrB_UnaryOp GxB_TAN_FC64; +extern GrB_UnaryOp GxB_TAN_FP32; +extern GrB_UnaryOp GxB_TAN_FP64; +extern GrB_UnaryOp GxB_TGAMMA_FP32; +extern GrB_UnaryOp GxB_TGAMMA_FP64; +extern GrB_UnaryOp GxB_TRUNC_FC32; +extern GrB_UnaryOp GxB_TRUNC_FC64; +extern GrB_UnaryOp GxB_TRUNC_FP32; +extern GrB_UnaryOp GxB_TRUNC_FP64; + +/* GxB objects */ +extern GxB_SelectOp GxB_DIAG; +extern GxB_SelectOp GxB_EQ_THUNK; +extern GxB_SelectOp GxB_EQ_ZERO; +extern GxB_SelectOp GxB_GE_THUNK; +extern GxB_SelectOp GxB_GE_ZERO; +extern GxB_SelectOp GxB_GT_THUNK; +extern GxB_SelectOp GxB_GT_ZERO; +extern GxB_SelectOp GxB_LE_THUNK; +extern GxB_SelectOp GxB_LE_ZERO; +extern GxB_SelectOp GxB_LT_THUNK; +extern GxB_SelectOp GxB_LT_ZERO; +extern GxB_SelectOp GxB_NE_THUNK; +extern GxB_SelectOp GxB_NONZERO; +extern GxB_SelectOp GxB_OFFDIAG; +extern GxB_SelectOp GxB_TRIL; +extern GxB_SelectOp GxB_TRIU; + +/**************** +* GrB functions * +****************/ + +/* binary */ +extern GrB_Info GrB_BinaryOp_error(const char **error, const GrB_BinaryOp op); +extern GrB_Info GrB_BinaryOp_free(GrB_BinaryOp *binaryop); +extern GrB_Info GrB_BinaryOp_new(GrB_BinaryOp *binaryop, GxB_binary_function function, GrB_Type ztype, GrB_Type xtype, GrB_Type ytype); +extern GrB_Info GrB_BinaryOp_wait(GrB_BinaryOp op, GrB_WaitMode waitmode); + +/* core */ +extern GrB_Info GrB_finalize(void); +extern GrB_Info GrB_getVersion(unsigned int *version, unsigned int *subversion); +extern GrB_Info GrB_init(GrB_Mode mode); + +/* descriptor */ +extern GrB_Info GrB_Descriptor_error(const char **error, const GrB_Descriptor d); +extern GrB_Info GrB_Descriptor_free(GrB_Descriptor *descriptor); +extern GrB_Info GrB_Descriptor_new(GrB_Descriptor *descriptor); +extern GrB_Info GrB_Descriptor_set(GrB_Descriptor desc, GrB_Desc_Field field, GrB_Desc_Value val); +extern GrB_Info GrB_Descriptor_wait(GrB_Descriptor desc, GrB_WaitMode waitmode); + +/* indexunary */ +extern GrB_Info GrB_IndexUnaryOp_error(const char **error, const GrB_IndexUnaryOp op); +extern GrB_Info GrB_IndexUnaryOp_free(GrB_IndexUnaryOp *op); +extern GrB_Info GrB_IndexUnaryOp_new(GrB_IndexUnaryOp *op, GxB_index_unary_function function, GrB_Type ztype, GrB_Type xtype, GrB_Type ytype); +extern GrB_Info GrB_IndexUnaryOp_wait(GrB_IndexUnaryOp op, GrB_WaitMode waitmode); + +/* matrix */ +extern GrB_Info GrB_Col_assign(GrB_Matrix C, const GrB_Vector mask, const GrB_BinaryOp accum, const GrB_Vector u, const GrB_Index *I, GrB_Index ni, GrB_Index j, const GrB_Descriptor desc); +extern GrB_Info GrB_Col_extract(GrB_Vector w, const GrB_Vector mask, const GrB_BinaryOp accum, const GrB_Matrix A, const GrB_Index *I, GrB_Index ni, GrB_Index j, const GrB_Descriptor desc); +extern GrB_Info GrB_Matrix_apply(GrB_Matrix C, const GrB_Matrix Mask, const GrB_BinaryOp accum, const GrB_UnaryOp op, const GrB_Matrix A, const GrB_Descriptor desc); +extern GrB_Info GrB_Matrix_apply_BinaryOp1st_BOOL(GrB_Matrix C, const GrB_Matrix Mask, const GrB_BinaryOp accum, const GrB_BinaryOp op, bool x, const GrB_Matrix A, const GrB_Descriptor desc); +extern GrB_Info GrB_Matrix_apply_BinaryOp1st_FP32(GrB_Matrix C, const GrB_Matrix Mask, const GrB_BinaryOp accum, const GrB_BinaryOp op, float x, const GrB_Matrix A, const GrB_Descriptor desc); +extern GrB_Info GrB_Matrix_apply_BinaryOp1st_FP64(GrB_Matrix C, const GrB_Matrix Mask, const GrB_BinaryOp accum, const GrB_BinaryOp op, double x, const GrB_Matrix A, const GrB_Descriptor desc); +extern GrB_Info GrB_Matrix_apply_BinaryOp1st_INT8(GrB_Matrix C, const GrB_Matrix Mask, const GrB_BinaryOp accum, const GrB_BinaryOp op, int8_t x, const GrB_Matrix A, const GrB_Descriptor desc); +extern GrB_Info GrB_Matrix_apply_BinaryOp1st_INT16(GrB_Matrix C, const GrB_Matrix Mask, const GrB_BinaryOp accum, const GrB_BinaryOp op, int16_t x, const GrB_Matrix A, const GrB_Descriptor desc); +extern GrB_Info GrB_Matrix_apply_BinaryOp1st_INT32(GrB_Matrix C, const GrB_Matrix Mask, const GrB_BinaryOp accum, const GrB_BinaryOp op, int32_t x, const GrB_Matrix A, const GrB_Descriptor desc); +extern GrB_Info GrB_Matrix_apply_BinaryOp1st_INT64(GrB_Matrix C, const GrB_Matrix Mask, const GrB_BinaryOp accum, const GrB_BinaryOp op, int64_t x, const GrB_Matrix A, const GrB_Descriptor desc); +extern GrB_Info GrB_Matrix_apply_BinaryOp1st_Scalar(GrB_Matrix C, const GrB_Matrix Mask, const GrB_BinaryOp accum, const GrB_BinaryOp op, const GrB_Scalar x, const GrB_Matrix A, const GrB_Descriptor desc); +extern GrB_Info GrB_Matrix_apply_BinaryOp1st_UDT(GrB_Matrix C, const GrB_Matrix Mask, const GrB_BinaryOp accum, const GrB_BinaryOp op, const void *x, const GrB_Matrix A, const GrB_Descriptor desc); +extern GrB_Info GrB_Matrix_apply_BinaryOp1st_UINT8(GrB_Matrix C, const GrB_Matrix Mask, const GrB_BinaryOp accum, const GrB_BinaryOp op, uint8_t x, const GrB_Matrix A, const GrB_Descriptor desc); +extern GrB_Info GrB_Matrix_apply_BinaryOp1st_UINT16(GrB_Matrix C, const GrB_Matrix Mask, const GrB_BinaryOp accum, const GrB_BinaryOp op, uint16_t x, const GrB_Matrix A, const GrB_Descriptor desc); +extern GrB_Info GrB_Matrix_apply_BinaryOp1st_UINT32(GrB_Matrix C, const GrB_Matrix Mask, const GrB_BinaryOp accum, const GrB_BinaryOp op, uint32_t x, const GrB_Matrix A, const GrB_Descriptor desc); +extern GrB_Info GrB_Matrix_apply_BinaryOp1st_UINT64(GrB_Matrix C, const GrB_Matrix Mask, const GrB_BinaryOp accum, const GrB_BinaryOp op, uint64_t x, const GrB_Matrix A, const GrB_Descriptor desc); +extern GrB_Info GrB_Matrix_apply_BinaryOp2nd_BOOL(GrB_Matrix C, const GrB_Matrix Mask, const GrB_BinaryOp accum, const GrB_BinaryOp op, const GrB_Matrix A, bool y, const GrB_Descriptor desc); +extern GrB_Info GrB_Matrix_apply_BinaryOp2nd_FP32(GrB_Matrix C, const GrB_Matrix Mask, const GrB_BinaryOp accum, const GrB_BinaryOp op, const GrB_Matrix A, float y, const GrB_Descriptor desc); +extern GrB_Info GrB_Matrix_apply_BinaryOp2nd_FP64(GrB_Matrix C, const GrB_Matrix Mask, const GrB_BinaryOp accum, const GrB_BinaryOp op, const GrB_Matrix A, double y, const GrB_Descriptor desc); +extern GrB_Info GrB_Matrix_apply_BinaryOp2nd_INT8(GrB_Matrix C, const GrB_Matrix Mask, const GrB_BinaryOp accum, const GrB_BinaryOp op, const GrB_Matrix A, int8_t y, const GrB_Descriptor desc); +extern GrB_Info GrB_Matrix_apply_BinaryOp2nd_INT16(GrB_Matrix C, const GrB_Matrix Mask, const GrB_BinaryOp accum, const GrB_BinaryOp op, const GrB_Matrix A, int16_t y, const GrB_Descriptor desc); +extern GrB_Info GrB_Matrix_apply_BinaryOp2nd_INT32(GrB_Matrix C, const GrB_Matrix Mask, const GrB_BinaryOp accum, const GrB_BinaryOp op, const GrB_Matrix A, int32_t y, const GrB_Descriptor desc); +extern GrB_Info GrB_Matrix_apply_BinaryOp2nd_INT64(GrB_Matrix C, const GrB_Matrix Mask, const GrB_BinaryOp accum, const GrB_BinaryOp op, const GrB_Matrix A, int64_t y, const GrB_Descriptor desc); +extern GrB_Info GrB_Matrix_apply_BinaryOp2nd_Scalar(GrB_Matrix C, const GrB_Matrix Mask, const GrB_BinaryOp accum, const GrB_BinaryOp op, const GrB_Matrix A, const GrB_Scalar y, const GrB_Descriptor desc); +extern GrB_Info GrB_Matrix_apply_BinaryOp2nd_UDT(GrB_Matrix C, const GrB_Matrix Mask, const GrB_BinaryOp accum, const GrB_BinaryOp op, const GrB_Matrix A, const void *y, const GrB_Descriptor desc); +extern GrB_Info GrB_Matrix_apply_BinaryOp2nd_UINT8(GrB_Matrix C, const GrB_Matrix Mask, const GrB_BinaryOp accum, const GrB_BinaryOp op, const GrB_Matrix A, uint8_t y, const GrB_Descriptor desc); +extern GrB_Info GrB_Matrix_apply_BinaryOp2nd_UINT16(GrB_Matrix C, const GrB_Matrix Mask, const GrB_BinaryOp accum, const GrB_BinaryOp op, const GrB_Matrix A, uint16_t y, const GrB_Descriptor desc); +extern GrB_Info GrB_Matrix_apply_BinaryOp2nd_UINT32(GrB_Matrix C, const GrB_Matrix Mask, const GrB_BinaryOp accum, const GrB_BinaryOp op, const GrB_Matrix A, uint32_t y, const GrB_Descriptor desc); +extern GrB_Info GrB_Matrix_apply_BinaryOp2nd_UINT64(GrB_Matrix C, const GrB_Matrix Mask, const GrB_BinaryOp accum, const GrB_BinaryOp op, const GrB_Matrix A, uint64_t y, const GrB_Descriptor desc); +extern GrB_Info GrB_Matrix_apply_IndexOp_BOOL(GrB_Matrix C, const GrB_Matrix Mask, const GrB_BinaryOp accum, const GrB_IndexUnaryOp op, const GrB_Matrix A, bool y, const GrB_Descriptor desc); +extern GrB_Info GrB_Matrix_apply_IndexOp_FP32(GrB_Matrix C, const GrB_Matrix Mask, const GrB_BinaryOp accum, const GrB_IndexUnaryOp op, const GrB_Matrix A, float y, const GrB_Descriptor desc); +extern GrB_Info GrB_Matrix_apply_IndexOp_FP64(GrB_Matrix C, const GrB_Matrix Mask, const GrB_BinaryOp accum, const GrB_IndexUnaryOp op, const GrB_Matrix A, double y, const GrB_Descriptor desc); +extern GrB_Info GrB_Matrix_apply_IndexOp_INT8(GrB_Matrix C, const GrB_Matrix Mask, const GrB_BinaryOp accum, const GrB_IndexUnaryOp op, const GrB_Matrix A, int8_t y, const GrB_Descriptor desc); +extern GrB_Info GrB_Matrix_apply_IndexOp_INT16(GrB_Matrix C, const GrB_Matrix Mask, const GrB_BinaryOp accum, const GrB_IndexUnaryOp op, const GrB_Matrix A, int16_t y, const GrB_Descriptor desc); +extern GrB_Info GrB_Matrix_apply_IndexOp_INT32(GrB_Matrix C, const GrB_Matrix Mask, const GrB_BinaryOp accum, const GrB_IndexUnaryOp op, const GrB_Matrix A, int32_t y, const GrB_Descriptor desc); +extern GrB_Info GrB_Matrix_apply_IndexOp_INT64(GrB_Matrix C, const GrB_Matrix Mask, const GrB_BinaryOp accum, const GrB_IndexUnaryOp op, const GrB_Matrix A, int64_t y, const GrB_Descriptor desc); +extern GrB_Info GrB_Matrix_apply_IndexOp_Scalar(GrB_Matrix C, const GrB_Matrix Mask, const GrB_BinaryOp accum, const GrB_IndexUnaryOp op, const GrB_Matrix A, const GrB_Scalar y, const GrB_Descriptor desc); +extern GrB_Info GrB_Matrix_apply_IndexOp_UDT(GrB_Matrix C, const GrB_Matrix Mask, const GrB_BinaryOp accum, const GrB_IndexUnaryOp op, const GrB_Matrix A, const void *y, const GrB_Descriptor desc); +extern GrB_Info GrB_Matrix_apply_IndexOp_UINT8(GrB_Matrix C, const GrB_Matrix Mask, const GrB_BinaryOp accum, const GrB_IndexUnaryOp op, const GrB_Matrix A, uint8_t y, const GrB_Descriptor desc); +extern GrB_Info GrB_Matrix_apply_IndexOp_UINT16(GrB_Matrix C, const GrB_Matrix Mask, const GrB_BinaryOp accum, const GrB_IndexUnaryOp op, const GrB_Matrix A, uint16_t y, const GrB_Descriptor desc); +extern GrB_Info GrB_Matrix_apply_IndexOp_UINT32(GrB_Matrix C, const GrB_Matrix Mask, const GrB_BinaryOp accum, const GrB_IndexUnaryOp op, const GrB_Matrix A, uint32_t y, const GrB_Descriptor desc); +extern GrB_Info GrB_Matrix_apply_IndexOp_UINT64(GrB_Matrix C, const GrB_Matrix Mask, const GrB_BinaryOp accum, const GrB_IndexUnaryOp op, const GrB_Matrix A, uint64_t y, const GrB_Descriptor desc); +extern GrB_Info GrB_Matrix_assign(GrB_Matrix C, const GrB_Matrix Mask, const GrB_BinaryOp accum, const GrB_Matrix A, const GrB_Index *I, GrB_Index ni, const GrB_Index *J, GrB_Index nj, const GrB_Descriptor desc); +extern GrB_Info GrB_Matrix_assign_BOOL(GrB_Matrix C, const GrB_Matrix Mask, const GrB_BinaryOp accum, bool x, const GrB_Index *I, GrB_Index ni, const GrB_Index *J, GrB_Index nj, const GrB_Descriptor desc); +extern GrB_Info GrB_Matrix_assign_FP32(GrB_Matrix C, const GrB_Matrix Mask, const GrB_BinaryOp accum, float x, const GrB_Index *I, GrB_Index ni, const GrB_Index *J, GrB_Index nj, const GrB_Descriptor desc); +extern GrB_Info GrB_Matrix_assign_FP64(GrB_Matrix C, const GrB_Matrix Mask, const GrB_BinaryOp accum, double x, const GrB_Index *I, GrB_Index ni, const GrB_Index *J, GrB_Index nj, const GrB_Descriptor desc); +extern GrB_Info GrB_Matrix_assign_INT8(GrB_Matrix C, const GrB_Matrix Mask, const GrB_BinaryOp accum, int8_t x, const GrB_Index *I, GrB_Index ni, const GrB_Index *J, GrB_Index nj, const GrB_Descriptor desc); +extern GrB_Info GrB_Matrix_assign_INT16(GrB_Matrix C, const GrB_Matrix Mask, const GrB_BinaryOp accum, int16_t x, const GrB_Index *I, GrB_Index ni, const GrB_Index *J, GrB_Index nj, const GrB_Descriptor desc); +extern GrB_Info GrB_Matrix_assign_INT32(GrB_Matrix C, const GrB_Matrix Mask, const GrB_BinaryOp accum, int32_t x, const GrB_Index *I, GrB_Index ni, const GrB_Index *J, GrB_Index nj, const GrB_Descriptor desc); +extern GrB_Info GrB_Matrix_assign_INT64(GrB_Matrix C, const GrB_Matrix Mask, const GrB_BinaryOp accum, int64_t x, const GrB_Index *I, GrB_Index ni, const GrB_Index *J, GrB_Index nj, const GrB_Descriptor desc); +extern GrB_Info GrB_Matrix_assign_Scalar(GrB_Matrix C, const GrB_Matrix Mask, const GrB_BinaryOp accum, GrB_Scalar x, const GrB_Index *I, GrB_Index ni, const GrB_Index *J, GrB_Index nj, const GrB_Descriptor desc); +extern GrB_Info GrB_Matrix_assign_UDT(GrB_Matrix C, const GrB_Matrix Mask, const GrB_BinaryOp accum, void *x, const GrB_Index *I, GrB_Index ni, const GrB_Index *J, GrB_Index nj, const GrB_Descriptor desc); +extern GrB_Info GrB_Matrix_assign_UINT8(GrB_Matrix C, const GrB_Matrix Mask, const GrB_BinaryOp accum, uint8_t x, const GrB_Index *I, GrB_Index ni, const GrB_Index *J, GrB_Index nj, const GrB_Descriptor desc); +extern GrB_Info GrB_Matrix_assign_UINT16(GrB_Matrix C, const GrB_Matrix Mask, const GrB_BinaryOp accum, uint16_t x, const GrB_Index *I, GrB_Index ni, const GrB_Index *J, GrB_Index nj, const GrB_Descriptor desc); +extern GrB_Info GrB_Matrix_assign_UINT32(GrB_Matrix C, const GrB_Matrix Mask, const GrB_BinaryOp accum, uint32_t x, const GrB_Index *I, GrB_Index ni, const GrB_Index *J, GrB_Index nj, const GrB_Descriptor desc); +extern GrB_Info GrB_Matrix_assign_UINT64(GrB_Matrix C, const GrB_Matrix Mask, const GrB_BinaryOp accum, uint64_t x, const GrB_Index *I, GrB_Index ni, const GrB_Index *J, GrB_Index nj, const GrB_Descriptor desc); +extern GrB_Info GrB_Matrix_build_BOOL(GrB_Matrix C, const GrB_Index *I, const GrB_Index *J, const bool *X, GrB_Index nvals, const GrB_BinaryOp dup); +extern GrB_Info GrB_Matrix_build_FP32(GrB_Matrix C, const GrB_Index *I, const GrB_Index *J, const float *X, GrB_Index nvals, const GrB_BinaryOp dup); +extern GrB_Info GrB_Matrix_build_FP64(GrB_Matrix C, const GrB_Index *I, const GrB_Index *J, const double *X, GrB_Index nvals, const GrB_BinaryOp dup); +extern GrB_Info GrB_Matrix_build_INT8(GrB_Matrix C, const GrB_Index *I, const GrB_Index *J, const int8_t *X, GrB_Index nvals, const GrB_BinaryOp dup); +extern GrB_Info GrB_Matrix_build_INT16(GrB_Matrix C, const GrB_Index *I, const GrB_Index *J, const int16_t *X, GrB_Index nvals, const GrB_BinaryOp dup); +extern GrB_Info GrB_Matrix_build_INT32(GrB_Matrix C, const GrB_Index *I, const GrB_Index *J, const int32_t *X, GrB_Index nvals, const GrB_BinaryOp dup); +extern GrB_Info GrB_Matrix_build_INT64(GrB_Matrix C, const GrB_Index *I, const GrB_Index *J, const int64_t *X, GrB_Index nvals, const GrB_BinaryOp dup); +extern GrB_Info GrB_Matrix_build_UDT(GrB_Matrix C, const GrB_Index *I, const GrB_Index *J, const void *X, GrB_Index nvals, const GrB_BinaryOp dup); +extern GrB_Info GrB_Matrix_build_UINT8(GrB_Matrix C, const GrB_Index *I, const GrB_Index *J, const uint8_t *X, GrB_Index nvals, const GrB_BinaryOp dup); +extern GrB_Info GrB_Matrix_build_UINT16(GrB_Matrix C, const GrB_Index *I, const GrB_Index *J, const uint16_t *X, GrB_Index nvals, const GrB_BinaryOp dup); +extern GrB_Info GrB_Matrix_build_UINT32(GrB_Matrix C, const GrB_Index *I, const GrB_Index *J, const uint32_t *X, GrB_Index nvals, const GrB_BinaryOp dup); +extern GrB_Info GrB_Matrix_build_UINT64(GrB_Matrix C, const GrB_Index *I, const GrB_Index *J, const uint64_t *X, GrB_Index nvals, const GrB_BinaryOp dup); +extern GrB_Info GrB_Matrix_clear(GrB_Matrix A); +extern GrB_Info GrB_Matrix_deserialize(GrB_Matrix *C, GrB_Type type, const void *blob, GrB_Index blob_size); +extern GrB_Info GrB_Matrix_diag(GrB_Matrix *C, const GrB_Vector v, int64_t k); +extern GrB_Info GrB_Matrix_dup(GrB_Matrix *C, const GrB_Matrix A); +extern GrB_Info GrB_Matrix_eWiseAdd_BinaryOp(GrB_Matrix C, const GrB_Matrix Mask, const GrB_BinaryOp accum, const GrB_BinaryOp add, const GrB_Matrix A, const GrB_Matrix B, const GrB_Descriptor desc); +extern GrB_Info GrB_Matrix_eWiseAdd_Monoid(GrB_Matrix C, const GrB_Matrix Mask, const GrB_BinaryOp accum, const GrB_Monoid monoid, const GrB_Matrix A, const GrB_Matrix B, const GrB_Descriptor desc); +extern GrB_Info GrB_Matrix_eWiseAdd_Semiring(GrB_Matrix C, const GrB_Matrix Mask, const GrB_BinaryOp accum, const GrB_Semiring semiring, const GrB_Matrix A, const GrB_Matrix B, const GrB_Descriptor desc); +extern GrB_Info GrB_Matrix_eWiseMult_BinaryOp(GrB_Matrix C, const GrB_Matrix Mask, const GrB_BinaryOp accum, const GrB_BinaryOp mult, const GrB_Matrix A, const GrB_Matrix B, const GrB_Descriptor desc); +extern GrB_Info GrB_Matrix_eWiseMult_Monoid(GrB_Matrix C, const GrB_Matrix Mask, const GrB_BinaryOp accum, const GrB_Monoid monoid, const GrB_Matrix A, const GrB_Matrix B, const GrB_Descriptor desc); +extern GrB_Info GrB_Matrix_eWiseMult_Semiring(GrB_Matrix C, const GrB_Matrix Mask, const GrB_BinaryOp accum, const GrB_Semiring semiring, const GrB_Matrix A, const GrB_Matrix B, const GrB_Descriptor desc); +extern GrB_Info GrB_Matrix_error(const char **error, const GrB_Matrix A); +extern GrB_Info GrB_Matrix_exportHint(GrB_Format *format, GrB_Matrix A); +extern GrB_Info GrB_Matrix_exportSize(GrB_Index *Ap_len, GrB_Index *Ai_len, GrB_Index *Ax_len, GrB_Format format, GrB_Matrix A); +extern GrB_Info GrB_Matrix_export_BOOL(GrB_Index *Ap, GrB_Index *Ai, bool *Ax, GrB_Index *Ap_len, GrB_Index *Ai_len, GrB_Index *Ax_len, GrB_Format format, GrB_Matrix A); +extern GrB_Info GrB_Matrix_export_FP32(GrB_Index *Ap, GrB_Index *Ai, float *Ax, GrB_Index *Ap_len, GrB_Index *Ai_len, GrB_Index *Ax_len, GrB_Format format, GrB_Matrix A); +extern GrB_Info GrB_Matrix_export_FP64(GrB_Index *Ap, GrB_Index *Ai, double *Ax, GrB_Index *Ap_len, GrB_Index *Ai_len, GrB_Index *Ax_len, GrB_Format format, GrB_Matrix A); +extern GrB_Info GrB_Matrix_export_INT8(GrB_Index *Ap, GrB_Index *Ai, int8_t *Ax, GrB_Index *Ap_len, GrB_Index *Ai_len, GrB_Index *Ax_len, GrB_Format format, GrB_Matrix A); +extern GrB_Info GrB_Matrix_export_INT16(GrB_Index *Ap, GrB_Index *Ai, int16_t *Ax, GrB_Index *Ap_len, GrB_Index *Ai_len, GrB_Index *Ax_len, GrB_Format format, GrB_Matrix A); +extern GrB_Info GrB_Matrix_export_INT32(GrB_Index *Ap, GrB_Index *Ai, int32_t *Ax, GrB_Index *Ap_len, GrB_Index *Ai_len, GrB_Index *Ax_len, GrB_Format format, GrB_Matrix A); +extern GrB_Info GrB_Matrix_export_INT64(GrB_Index *Ap, GrB_Index *Ai, int64_t *Ax, GrB_Index *Ap_len, GrB_Index *Ai_len, GrB_Index *Ax_len, GrB_Format format, GrB_Matrix A); +extern GrB_Info GrB_Matrix_export_UDT(GrB_Index *Ap, GrB_Index *Ai, void *Ax, GrB_Index *Ap_len, GrB_Index *Ai_len, GrB_Index *Ax_len, GrB_Format format, GrB_Matrix A); +extern GrB_Info GrB_Matrix_export_UINT8(GrB_Index *Ap, GrB_Index *Ai, uint8_t *Ax, GrB_Index *Ap_len, GrB_Index *Ai_len, GrB_Index *Ax_len, GrB_Format format, GrB_Matrix A); +extern GrB_Info GrB_Matrix_export_UINT16(GrB_Index *Ap, GrB_Index *Ai, uint16_t *Ax, GrB_Index *Ap_len, GrB_Index *Ai_len, GrB_Index *Ax_len, GrB_Format format, GrB_Matrix A); +extern GrB_Info GrB_Matrix_export_UINT32(GrB_Index *Ap, GrB_Index *Ai, uint32_t *Ax, GrB_Index *Ap_len, GrB_Index *Ai_len, GrB_Index *Ax_len, GrB_Format format, GrB_Matrix A); +extern GrB_Info GrB_Matrix_export_UINT64(GrB_Index *Ap, GrB_Index *Ai, uint64_t *Ax, GrB_Index *Ap_len, GrB_Index *Ai_len, GrB_Index *Ax_len, GrB_Format format, GrB_Matrix A); +extern GrB_Info GrB_Matrix_extract(GrB_Matrix C, const GrB_Matrix Mask, const GrB_BinaryOp accum, const GrB_Matrix A, const GrB_Index *I, GrB_Index ni, const GrB_Index *J, GrB_Index nj, const GrB_Descriptor desc); +extern GrB_Info GrB_Matrix_extractElement_BOOL(bool *x, const GrB_Matrix A, GrB_Index i, GrB_Index j); +extern GrB_Info GrB_Matrix_extractElement_FP32(float *x, const GrB_Matrix A, GrB_Index i, GrB_Index j); +extern GrB_Info GrB_Matrix_extractElement_FP64(double *x, const GrB_Matrix A, GrB_Index i, GrB_Index j); +extern GrB_Info GrB_Matrix_extractElement_INT8(int8_t *x, const GrB_Matrix A, GrB_Index i, GrB_Index j); +extern GrB_Info GrB_Matrix_extractElement_INT16(int16_t *x, const GrB_Matrix A, GrB_Index i, GrB_Index j); +extern GrB_Info GrB_Matrix_extractElement_INT32(int32_t *x, const GrB_Matrix A, GrB_Index i, GrB_Index j); +extern GrB_Info GrB_Matrix_extractElement_INT64(int64_t *x, const GrB_Matrix A, GrB_Index i, GrB_Index j); +extern GrB_Info GrB_Matrix_extractElement_Scalar(GrB_Scalar x, const GrB_Matrix A, GrB_Index i, GrB_Index j); +extern GrB_Info GrB_Matrix_extractElement_UDT(void *x, const GrB_Matrix A, GrB_Index i, GrB_Index j); +extern GrB_Info GrB_Matrix_extractElement_UINT8(uint8_t *x, const GrB_Matrix A, GrB_Index i, GrB_Index j); +extern GrB_Info GrB_Matrix_extractElement_UINT16(uint16_t *x, const GrB_Matrix A, GrB_Index i, GrB_Index j); +extern GrB_Info GrB_Matrix_extractElement_UINT32(uint32_t *x, const GrB_Matrix A, GrB_Index i, GrB_Index j); +extern GrB_Info GrB_Matrix_extractElement_UINT64(uint64_t *x, const GrB_Matrix A, GrB_Index i, GrB_Index j); +extern GrB_Info GrB_Matrix_extractTuples_BOOL(GrB_Index *I, GrB_Index *J, bool *X, GrB_Index *nvals, const GrB_Matrix A); +extern GrB_Info GrB_Matrix_extractTuples_FP32(GrB_Index *I, GrB_Index *J, float *X, GrB_Index *nvals, const GrB_Matrix A); +extern GrB_Info GrB_Matrix_extractTuples_FP64(GrB_Index *I, GrB_Index *J, double *X, GrB_Index *nvals, const GrB_Matrix A); +extern GrB_Info GrB_Matrix_extractTuples_INT8(GrB_Index *I, GrB_Index *J, int8_t *X, GrB_Index *nvals, const GrB_Matrix A); +extern GrB_Info GrB_Matrix_extractTuples_INT16(GrB_Index *I, GrB_Index *J, int16_t *X, GrB_Index *nvals, const GrB_Matrix A); +extern GrB_Info GrB_Matrix_extractTuples_INT32(GrB_Index *I, GrB_Index *J, int32_t *X, GrB_Index *nvals, const GrB_Matrix A); +extern GrB_Info GrB_Matrix_extractTuples_INT64(GrB_Index *I, GrB_Index *J, int64_t *X, GrB_Index *nvals, const GrB_Matrix A); +extern GrB_Info GrB_Matrix_extractTuples_UDT(GrB_Index *I, GrB_Index *J, void *X, GrB_Index *nvals, const GrB_Matrix A); +extern GrB_Info GrB_Matrix_extractTuples_UINT8(GrB_Index *I, GrB_Index *J, uint8_t *X, GrB_Index *nvals, const GrB_Matrix A); +extern GrB_Info GrB_Matrix_extractTuples_UINT16(GrB_Index *I, GrB_Index *J, uint16_t *X, GrB_Index *nvals, const GrB_Matrix A); +extern GrB_Info GrB_Matrix_extractTuples_UINT32(GrB_Index *I, GrB_Index *J, uint32_t *X, GrB_Index *nvals, const GrB_Matrix A); +extern GrB_Info GrB_Matrix_extractTuples_UINT64(GrB_Index *I, GrB_Index *J, uint64_t *X, GrB_Index *nvals, const GrB_Matrix A); +extern GrB_Info GrB_Matrix_free(GrB_Matrix *A); +extern GrB_Info GrB_Matrix_import_BOOL(GrB_Matrix *A, GrB_Type type, GrB_Index nrows, GrB_Index ncols, const GrB_Index *Ap, const GrB_Index *Ai, const bool *Ax, GrB_Index Ap_len, GrB_Index Ai_len, GrB_Index Ax_len, GrB_Format format); +extern GrB_Info GrB_Matrix_import_FP32(GrB_Matrix *A, GrB_Type type, GrB_Index nrows, GrB_Index ncols, const GrB_Index *Ap, const GrB_Index *Ai, const float *Ax, GrB_Index Ap_len, GrB_Index Ai_len, GrB_Index Ax_len, GrB_Format format); +extern GrB_Info GrB_Matrix_import_FP64(GrB_Matrix *A, GrB_Type type, GrB_Index nrows, GrB_Index ncols, const GrB_Index *Ap, const GrB_Index *Ai, const double *Ax, GrB_Index Ap_len, GrB_Index Ai_len, GrB_Index Ax_len, GrB_Format format); +extern GrB_Info GrB_Matrix_import_INT8(GrB_Matrix *A, GrB_Type type, GrB_Index nrows, GrB_Index ncols, const GrB_Index *Ap, const GrB_Index *Ai, const int8_t *Ax, GrB_Index Ap_len, GrB_Index Ai_len, GrB_Index Ax_len, GrB_Format format); +extern GrB_Info GrB_Matrix_import_INT16(GrB_Matrix *A, GrB_Type type, GrB_Index nrows, GrB_Index ncols, const GrB_Index *Ap, const GrB_Index *Ai, const int16_t *Ax, GrB_Index Ap_len, GrB_Index Ai_len, GrB_Index Ax_len, GrB_Format format); +extern GrB_Info GrB_Matrix_import_INT32(GrB_Matrix *A, GrB_Type type, GrB_Index nrows, GrB_Index ncols, const GrB_Index *Ap, const GrB_Index *Ai, const int32_t *Ax, GrB_Index Ap_len, GrB_Index Ai_len, GrB_Index Ax_len, GrB_Format format); +extern GrB_Info GrB_Matrix_import_INT64(GrB_Matrix *A, GrB_Type type, GrB_Index nrows, GrB_Index ncols, const GrB_Index *Ap, const GrB_Index *Ai, const int64_t *Ax, GrB_Index Ap_len, GrB_Index Ai_len, GrB_Index Ax_len, GrB_Format format); +extern GrB_Info GrB_Matrix_import_UDT(GrB_Matrix *A, GrB_Type type, GrB_Index nrows, GrB_Index ncols, const GrB_Index *Ap, const GrB_Index *Ai, const void *Ax, GrB_Index Ap_len, GrB_Index Ai_len, GrB_Index Ax_len, GrB_Format format); +extern GrB_Info GrB_Matrix_import_UINT8(GrB_Matrix *A, GrB_Type type, GrB_Index nrows, GrB_Index ncols, const GrB_Index *Ap, const GrB_Index *Ai, const uint8_t *Ax, GrB_Index Ap_len, GrB_Index Ai_len, GrB_Index Ax_len, GrB_Format format); +extern GrB_Info GrB_Matrix_import_UINT16(GrB_Matrix *A, GrB_Type type, GrB_Index nrows, GrB_Index ncols, const GrB_Index *Ap, const GrB_Index *Ai, const uint16_t *Ax, GrB_Index Ap_len, GrB_Index Ai_len, GrB_Index Ax_len, GrB_Format format); +extern GrB_Info GrB_Matrix_import_UINT32(GrB_Matrix *A, GrB_Type type, GrB_Index nrows, GrB_Index ncols, const GrB_Index *Ap, const GrB_Index *Ai, const uint32_t *Ax, GrB_Index Ap_len, GrB_Index Ai_len, GrB_Index Ax_len, GrB_Format format); +extern GrB_Info GrB_Matrix_import_UINT64(GrB_Matrix *A, GrB_Type type, GrB_Index nrows, GrB_Index ncols, const GrB_Index *Ap, const GrB_Index *Ai, const uint64_t *Ax, GrB_Index Ap_len, GrB_Index Ai_len, GrB_Index Ax_len, GrB_Format format); +extern GrB_Info GrB_Matrix_kronecker_BinaryOp(GrB_Matrix C, const GrB_Matrix M, const GrB_BinaryOp accum, const GrB_BinaryOp op, const GrB_Matrix A, const GrB_Matrix B, const GrB_Descriptor desc); +extern GrB_Info GrB_Matrix_kronecker_Monoid(GrB_Matrix C, const GrB_Matrix M, const GrB_BinaryOp accum, const GrB_Monoid monoid, const GrB_Matrix A, const GrB_Matrix B, const GrB_Descriptor desc); +extern GrB_Info GrB_Matrix_kronecker_Semiring(GrB_Matrix C, const GrB_Matrix M, const GrB_BinaryOp accum, const GrB_Semiring semiring, const GrB_Matrix A, const GrB_Matrix B, const GrB_Descriptor desc); +extern GrB_Info GrB_Matrix_ncols(GrB_Index *ncols, const GrB_Matrix A); +extern GrB_Info GrB_Matrix_new(GrB_Matrix *A, GrB_Type type, GrB_Index nrows, GrB_Index ncols); +extern GrB_Info GrB_Matrix_nrows(GrB_Index *nrows, const GrB_Matrix A); +extern GrB_Info GrB_Matrix_nvals(GrB_Index *nvals, const GrB_Matrix A); +extern GrB_Info GrB_Matrix_reduce_BOOL(bool *c, const GrB_BinaryOp accum, const GrB_Monoid monoid, const GrB_Matrix A, const GrB_Descriptor desc); +extern GrB_Info GrB_Matrix_reduce_BinaryOp(GrB_Vector w, const GrB_Vector mask, const GrB_BinaryOp accum, const GrB_BinaryOp op, const GrB_Matrix A, const GrB_Descriptor desc); +extern GrB_Info GrB_Matrix_reduce_BinaryOp_Scalar(GrB_Scalar S, const GrB_BinaryOp accum, const GrB_BinaryOp op, const GrB_Matrix A, const GrB_Descriptor desc); +extern GrB_Info GrB_Matrix_reduce_FP32(float *c, const GrB_BinaryOp accum, const GrB_Monoid monoid, const GrB_Matrix A, const GrB_Descriptor desc); +extern GrB_Info GrB_Matrix_reduce_FP64(double *c, const GrB_BinaryOp accum, const GrB_Monoid monoid, const GrB_Matrix A, const GrB_Descriptor desc); +extern GrB_Info GrB_Matrix_reduce_INT8(int8_t *c, const GrB_BinaryOp accum, const GrB_Monoid monoid, const GrB_Matrix A, const GrB_Descriptor desc); +extern GrB_Info GrB_Matrix_reduce_INT16(int16_t *c, const GrB_BinaryOp accum, const GrB_Monoid monoid, const GrB_Matrix A, const GrB_Descriptor desc); +extern GrB_Info GrB_Matrix_reduce_INT32(int32_t *c, const GrB_BinaryOp accum, const GrB_Monoid monoid, const GrB_Matrix A, const GrB_Descriptor desc); +extern GrB_Info GrB_Matrix_reduce_INT64(int64_t *c, const GrB_BinaryOp accum, const GrB_Monoid monoid, const GrB_Matrix A, const GrB_Descriptor desc); +extern GrB_Info GrB_Matrix_reduce_Monoid(GrB_Vector w, const GrB_Vector mask, const GrB_BinaryOp accum, const GrB_Monoid monoid, const GrB_Matrix A, const GrB_Descriptor desc); +extern GrB_Info GrB_Matrix_reduce_Monoid_Scalar(GrB_Scalar c, const GrB_BinaryOp accum, const GrB_Monoid monoid, const GrB_Matrix A, const GrB_Descriptor desc); +extern GrB_Info GrB_Matrix_reduce_UDT(void *c, const GrB_BinaryOp accum, const GrB_Monoid monoid, const GrB_Matrix A, const GrB_Descriptor desc); +extern GrB_Info GrB_Matrix_reduce_UINT8(uint8_t *c, const GrB_BinaryOp accum, const GrB_Monoid monoid, const GrB_Matrix A, const GrB_Descriptor desc); +extern GrB_Info GrB_Matrix_reduce_UINT16(uint16_t *c, const GrB_BinaryOp accum, const GrB_Monoid monoid, const GrB_Matrix A, const GrB_Descriptor desc); +extern GrB_Info GrB_Matrix_reduce_UINT32(uint32_t *c, const GrB_BinaryOp accum, const GrB_Monoid monoid, const GrB_Matrix A, const GrB_Descriptor desc); +extern GrB_Info GrB_Matrix_reduce_UINT64(uint64_t *c, const GrB_BinaryOp accum, const GrB_Monoid monoid, const GrB_Matrix A, const GrB_Descriptor desc); +extern GrB_Info GrB_Matrix_removeElement(GrB_Matrix C, GrB_Index i, GrB_Index j); +extern GrB_Info GrB_Matrix_resize(GrB_Matrix C, GrB_Index nrows_new, GrB_Index ncols_new); +extern GrB_Info GrB_Matrix_select_BOOL(GrB_Matrix C, const GrB_Matrix Mask, const GrB_BinaryOp accum, const GrB_IndexUnaryOp op, const GrB_Matrix A, bool y, const GrB_Descriptor desc); +extern GrB_Info GrB_Matrix_select_FP32(GrB_Matrix C, const GrB_Matrix Mask, const GrB_BinaryOp accum, const GrB_IndexUnaryOp op, const GrB_Matrix A, float y, const GrB_Descriptor desc); +extern GrB_Info GrB_Matrix_select_FP64(GrB_Matrix C, const GrB_Matrix Mask, const GrB_BinaryOp accum, const GrB_IndexUnaryOp op, const GrB_Matrix A, double y, const GrB_Descriptor desc); +extern GrB_Info GrB_Matrix_select_INT8(GrB_Matrix C, const GrB_Matrix Mask, const GrB_BinaryOp accum, const GrB_IndexUnaryOp op, const GrB_Matrix A, int8_t y, const GrB_Descriptor desc); +extern GrB_Info GrB_Matrix_select_INT16(GrB_Matrix C, const GrB_Matrix Mask, const GrB_BinaryOp accum, const GrB_IndexUnaryOp op, const GrB_Matrix A, int16_t y, const GrB_Descriptor desc); +extern GrB_Info GrB_Matrix_select_INT32(GrB_Matrix C, const GrB_Matrix Mask, const GrB_BinaryOp accum, const GrB_IndexUnaryOp op, const GrB_Matrix A, int32_t y, const GrB_Descriptor desc); +extern GrB_Info GrB_Matrix_select_INT64(GrB_Matrix C, const GrB_Matrix Mask, const GrB_BinaryOp accum, const GrB_IndexUnaryOp op, const GrB_Matrix A, int64_t y, const GrB_Descriptor desc); +extern GrB_Info GrB_Matrix_select_Scalar(GrB_Matrix C, const GrB_Matrix Mask, const GrB_BinaryOp accum, const GrB_IndexUnaryOp op, const GrB_Matrix A, const GrB_Scalar y, const GrB_Descriptor desc); +extern GrB_Info GrB_Matrix_select_UDT(GrB_Matrix C, const GrB_Matrix Mask, const GrB_BinaryOp accum, const GrB_IndexUnaryOp op, const GrB_Matrix A, const void *y, const GrB_Descriptor desc); +extern GrB_Info GrB_Matrix_select_UINT8(GrB_Matrix C, const GrB_Matrix Mask, const GrB_BinaryOp accum, const GrB_IndexUnaryOp op, const GrB_Matrix A, uint8_t y, const GrB_Descriptor desc); +extern GrB_Info GrB_Matrix_select_UINT16(GrB_Matrix C, const GrB_Matrix Mask, const GrB_BinaryOp accum, const GrB_IndexUnaryOp op, const GrB_Matrix A, uint16_t y, const GrB_Descriptor desc); +extern GrB_Info GrB_Matrix_select_UINT32(GrB_Matrix C, const GrB_Matrix Mask, const GrB_BinaryOp accum, const GrB_IndexUnaryOp op, const GrB_Matrix A, uint32_t y, const GrB_Descriptor desc); +extern GrB_Info GrB_Matrix_select_UINT64(GrB_Matrix C, const GrB_Matrix Mask, const GrB_BinaryOp accum, const GrB_IndexUnaryOp op, const GrB_Matrix A, uint64_t y, const GrB_Descriptor desc); +extern GrB_Info GrB_Matrix_serialize(void *blob, GrB_Index *blob_size_handle, GrB_Matrix A); +extern GrB_Info GrB_Matrix_serializeSize(GrB_Index *blob_size_handle, GrB_Matrix A); +extern GrB_Info GrB_Matrix_setElement_BOOL(GrB_Matrix C, bool x, GrB_Index i, GrB_Index j); +extern GrB_Info GrB_Matrix_setElement_FP32(GrB_Matrix C, float x, GrB_Index i, GrB_Index j); +extern GrB_Info GrB_Matrix_setElement_FP64(GrB_Matrix C, double x, GrB_Index i, GrB_Index j); +extern GrB_Info GrB_Matrix_setElement_INT8(GrB_Matrix C, int8_t x, GrB_Index i, GrB_Index j); +extern GrB_Info GrB_Matrix_setElement_INT16(GrB_Matrix C, int16_t x, GrB_Index i, GrB_Index j); +extern GrB_Info GrB_Matrix_setElement_INT32(GrB_Matrix C, int32_t x, GrB_Index i, GrB_Index j); +extern GrB_Info GrB_Matrix_setElement_INT64(GrB_Matrix C, int64_t x, GrB_Index i, GrB_Index j); +extern GrB_Info GrB_Matrix_setElement_Scalar(GrB_Matrix C, GrB_Scalar x, GrB_Index i, GrB_Index j); +extern GrB_Info GrB_Matrix_setElement_UDT(GrB_Matrix C, void *x, GrB_Index i, GrB_Index j); +extern GrB_Info GrB_Matrix_setElement_UINT8(GrB_Matrix C, uint8_t x, GrB_Index i, GrB_Index j); +extern GrB_Info GrB_Matrix_setElement_UINT16(GrB_Matrix C, uint16_t x, GrB_Index i, GrB_Index j); +extern GrB_Info GrB_Matrix_setElement_UINT32(GrB_Matrix C, uint32_t x, GrB_Index i, GrB_Index j); +extern GrB_Info GrB_Matrix_setElement_UINT64(GrB_Matrix C, uint64_t x, GrB_Index i, GrB_Index j); +extern GrB_Info GrB_Matrix_wait(GrB_Matrix A, GrB_WaitMode waitmode); +extern GrB_Info GrB_Row_assign(GrB_Matrix C, const GrB_Vector mask, const GrB_BinaryOp accum, const GrB_Vector u, GrB_Index i, const GrB_Index *J, GrB_Index nj, const GrB_Descriptor desc); +extern GrB_Info GrB_mxm(GrB_Matrix C, const GrB_Matrix Mask, const GrB_BinaryOp accum, const GrB_Semiring semiring, const GrB_Matrix A, const GrB_Matrix B, const GrB_Descriptor desc); +extern GrB_Info GrB_mxv(GrB_Vector w, const GrB_Vector mask, const GrB_BinaryOp accum, const GrB_Semiring semiring, const GrB_Matrix A, const GrB_Vector u, const GrB_Descriptor desc); +extern GrB_Info GrB_transpose(GrB_Matrix C, const GrB_Matrix Mask, const GrB_BinaryOp accum, const GrB_Matrix A, const GrB_Descriptor desc); +extern GrB_Info GrB_vxm(GrB_Vector w, const GrB_Vector mask, const GrB_BinaryOp accum, const GrB_Semiring semiring, const GrB_Vector u, const GrB_Matrix A, const GrB_Descriptor desc); + +/* monoid */ +extern GrB_Info GrB_Monoid_error(const char **error, const GrB_Monoid monoid); +extern GrB_Info GrB_Monoid_free(GrB_Monoid *monoid); +extern GrB_Info GrB_Monoid_new_BOOL(GrB_Monoid *monoid, GrB_BinaryOp op, bool identity); +extern GrB_Info GrB_Monoid_new_FP32(GrB_Monoid *monoid, GrB_BinaryOp op, float identity); +extern GrB_Info GrB_Monoid_new_FP64(GrB_Monoid *monoid, GrB_BinaryOp op, double identity); +extern GrB_Info GrB_Monoid_new_INT8(GrB_Monoid *monoid, GrB_BinaryOp op, int8_t identity); +extern GrB_Info GrB_Monoid_new_INT16(GrB_Monoid *monoid, GrB_BinaryOp op, int16_t identity); +extern GrB_Info GrB_Monoid_new_INT32(GrB_Monoid *monoid, GrB_BinaryOp op, int32_t identity); +extern GrB_Info GrB_Monoid_new_INT64(GrB_Monoid *monoid, GrB_BinaryOp op, int64_t identity); +extern GrB_Info GrB_Monoid_new_UDT(GrB_Monoid *monoid, GrB_BinaryOp op, void *identity); +extern GrB_Info GrB_Monoid_new_UINT8(GrB_Monoid *monoid, GrB_BinaryOp op, uint8_t identity); +extern GrB_Info GrB_Monoid_new_UINT16(GrB_Monoid *monoid, GrB_BinaryOp op, uint16_t identity); +extern GrB_Info GrB_Monoid_new_UINT32(GrB_Monoid *monoid, GrB_BinaryOp op, uint32_t identity); +extern GrB_Info GrB_Monoid_new_UINT64(GrB_Monoid *monoid, GrB_BinaryOp op, uint64_t identity); +extern GrB_Info GrB_Monoid_wait(GrB_Monoid monoid, GrB_WaitMode waitmode); + +/* scalar */ +extern GrB_Info GrB_Scalar_clear(GrB_Scalar s); +extern GrB_Info GrB_Scalar_dup(GrB_Scalar *s, const GrB_Scalar t); +extern GrB_Info GrB_Scalar_error(const char **error, const GrB_Scalar s); +extern GrB_Info GrB_Scalar_extractElement_BOOL(bool *x, const GrB_Scalar s); +extern GrB_Info GrB_Scalar_extractElement_FP32(float *x, const GrB_Scalar s); +extern GrB_Info GrB_Scalar_extractElement_FP64(double *x, const GrB_Scalar s); +extern GrB_Info GrB_Scalar_extractElement_INT8(int8_t *x, const GrB_Scalar s); +extern GrB_Info GrB_Scalar_extractElement_INT16(int16_t *x, const GrB_Scalar s); +extern GrB_Info GrB_Scalar_extractElement_INT32(int32_t *x, const GrB_Scalar s); +extern GrB_Info GrB_Scalar_extractElement_INT64(int64_t *x, const GrB_Scalar s); +extern GrB_Info GrB_Scalar_extractElement_UDT(void *x, const GrB_Scalar s); +extern GrB_Info GrB_Scalar_extractElement_UINT8(uint8_t *x, const GrB_Scalar s); +extern GrB_Info GrB_Scalar_extractElement_UINT16(uint16_t *x, const GrB_Scalar s); +extern GrB_Info GrB_Scalar_extractElement_UINT32(uint32_t *x, const GrB_Scalar s); +extern GrB_Info GrB_Scalar_extractElement_UINT64(uint64_t *x, const GrB_Scalar s); +extern GrB_Info GrB_Scalar_free(GrB_Scalar *s); +extern GrB_Info GrB_Scalar_new(GrB_Scalar *s, GrB_Type type); +extern GrB_Info GrB_Scalar_nvals(GrB_Index *nvals, const GrB_Scalar s); +extern GrB_Info GrB_Scalar_setElement_BOOL(GrB_Scalar s, bool x); +extern GrB_Info GrB_Scalar_setElement_FP32(GrB_Scalar s, float x); +extern GrB_Info GrB_Scalar_setElement_FP64(GrB_Scalar s, double x); +extern GrB_Info GrB_Scalar_setElement_INT8(GrB_Scalar s, int8_t x); +extern GrB_Info GrB_Scalar_setElement_INT16(GrB_Scalar s, int16_t x); +extern GrB_Info GrB_Scalar_setElement_INT32(GrB_Scalar s, int32_t x); +extern GrB_Info GrB_Scalar_setElement_INT64(GrB_Scalar s, int64_t x); +extern GrB_Info GrB_Scalar_setElement_UDT(GrB_Scalar s, void *x); +extern GrB_Info GrB_Scalar_setElement_UINT8(GrB_Scalar s, uint8_t x); +extern GrB_Info GrB_Scalar_setElement_UINT16(GrB_Scalar s, uint16_t x); +extern GrB_Info GrB_Scalar_setElement_UINT32(GrB_Scalar s, uint32_t x); +extern GrB_Info GrB_Scalar_setElement_UINT64(GrB_Scalar s, uint64_t x); +extern GrB_Info GrB_Scalar_wait(GrB_Scalar s, GrB_WaitMode waitmode); + +/* semiring */ +extern GrB_Info GrB_Semiring_error(const char **error, const GrB_Semiring semiring); +extern GrB_Info GrB_Semiring_free(GrB_Semiring *semiring); +extern GrB_Info GrB_Semiring_new(GrB_Semiring *semiring, GrB_Monoid add, GrB_BinaryOp multiply); +extern GrB_Info GrB_Semiring_wait(GrB_Semiring semiring, GrB_WaitMode waitmode); + +/* type */ +extern GrB_Info GrB_Type_error(const char **error, const GrB_Type type); +extern GrB_Info GrB_Type_free(GrB_Type *type); +extern GrB_Info GrB_Type_new(GrB_Type *type, size_t sizeof_ctype); +extern GrB_Info GrB_Type_wait(GrB_Type type, GrB_WaitMode waitmode); + +/* unary */ +extern GrB_Info GrB_UnaryOp_error(const char **error, const GrB_UnaryOp op); +extern GrB_Info GrB_UnaryOp_free(GrB_UnaryOp *unaryop); +extern GrB_Info GrB_UnaryOp_new(GrB_UnaryOp *unaryop, GxB_unary_function function, GrB_Type ztype, GrB_Type xtype); +extern GrB_Info GrB_UnaryOp_wait(GrB_UnaryOp op, GrB_WaitMode waitmode); + +/* vector */ +extern GrB_Info GrB_Vector_apply(GrB_Vector w, const GrB_Vector mask, const GrB_BinaryOp accum, const GrB_UnaryOp op, const GrB_Vector u, const GrB_Descriptor desc); +extern GrB_Info GrB_Vector_apply_BinaryOp1st_BOOL(GrB_Vector w, const GrB_Vector mask, const GrB_BinaryOp accum, const GrB_BinaryOp op, bool x, const GrB_Vector u, const GrB_Descriptor desc); +extern GrB_Info GrB_Vector_apply_BinaryOp1st_FP32(GrB_Vector w, const GrB_Vector mask, const GrB_BinaryOp accum, const GrB_BinaryOp op, float x, const GrB_Vector u, const GrB_Descriptor desc); +extern GrB_Info GrB_Vector_apply_BinaryOp1st_FP64(GrB_Vector w, const GrB_Vector mask, const GrB_BinaryOp accum, const GrB_BinaryOp op, double x, const GrB_Vector u, const GrB_Descriptor desc); +extern GrB_Info GrB_Vector_apply_BinaryOp1st_INT8(GrB_Vector w, const GrB_Vector mask, const GrB_BinaryOp accum, const GrB_BinaryOp op, int8_t x, const GrB_Vector u, const GrB_Descriptor desc); +extern GrB_Info GrB_Vector_apply_BinaryOp1st_INT16(GrB_Vector w, const GrB_Vector mask, const GrB_BinaryOp accum, const GrB_BinaryOp op, int16_t x, const GrB_Vector u, const GrB_Descriptor desc); +extern GrB_Info GrB_Vector_apply_BinaryOp1st_INT32(GrB_Vector w, const GrB_Vector mask, const GrB_BinaryOp accum, const GrB_BinaryOp op, int32_t x, const GrB_Vector u, const GrB_Descriptor desc); +extern GrB_Info GrB_Vector_apply_BinaryOp1st_INT64(GrB_Vector w, const GrB_Vector mask, const GrB_BinaryOp accum, const GrB_BinaryOp op, int64_t x, const GrB_Vector u, const GrB_Descriptor desc); +extern GrB_Info GrB_Vector_apply_BinaryOp1st_Scalar(GrB_Vector w, const GrB_Vector mask, const GrB_BinaryOp accum, const GrB_BinaryOp op, const GrB_Scalar x, const GrB_Vector u, const GrB_Descriptor desc); +extern GrB_Info GrB_Vector_apply_BinaryOp1st_UDT(GrB_Vector w, const GrB_Vector mask, const GrB_BinaryOp accum, const GrB_BinaryOp op, const void *x, const GrB_Vector u, const GrB_Descriptor desc); +extern GrB_Info GrB_Vector_apply_BinaryOp1st_UINT8(GrB_Vector w, const GrB_Vector mask, const GrB_BinaryOp accum, const GrB_BinaryOp op, uint8_t x, const GrB_Vector u, const GrB_Descriptor desc); +extern GrB_Info GrB_Vector_apply_BinaryOp1st_UINT16(GrB_Vector w, const GrB_Vector mask, const GrB_BinaryOp accum, const GrB_BinaryOp op, uint16_t x, const GrB_Vector u, const GrB_Descriptor desc); +extern GrB_Info GrB_Vector_apply_BinaryOp1st_UINT32(GrB_Vector w, const GrB_Vector mask, const GrB_BinaryOp accum, const GrB_BinaryOp op, uint32_t x, const GrB_Vector u, const GrB_Descriptor desc); +extern GrB_Info GrB_Vector_apply_BinaryOp1st_UINT64(GrB_Vector w, const GrB_Vector mask, const GrB_BinaryOp accum, const GrB_BinaryOp op, uint64_t x, const GrB_Vector u, const GrB_Descriptor desc); +extern GrB_Info GrB_Vector_apply_BinaryOp2nd_BOOL(GrB_Vector w, const GrB_Vector mask, const GrB_BinaryOp accum, const GrB_BinaryOp op, const GrB_Vector u, bool y, const GrB_Descriptor desc); +extern GrB_Info GrB_Vector_apply_BinaryOp2nd_FP32(GrB_Vector w, const GrB_Vector mask, const GrB_BinaryOp accum, const GrB_BinaryOp op, const GrB_Vector u, float y, const GrB_Descriptor desc); +extern GrB_Info GrB_Vector_apply_BinaryOp2nd_FP64(GrB_Vector w, const GrB_Vector mask, const GrB_BinaryOp accum, const GrB_BinaryOp op, const GrB_Vector u, double y, const GrB_Descriptor desc); +extern GrB_Info GrB_Vector_apply_BinaryOp2nd_INT8(GrB_Vector w, const GrB_Vector mask, const GrB_BinaryOp accum, const GrB_BinaryOp op, const GrB_Vector u, int8_t y, const GrB_Descriptor desc); +extern GrB_Info GrB_Vector_apply_BinaryOp2nd_INT16(GrB_Vector w, const GrB_Vector mask, const GrB_BinaryOp accum, const GrB_BinaryOp op, const GrB_Vector u, int16_t y, const GrB_Descriptor desc); +extern GrB_Info GrB_Vector_apply_BinaryOp2nd_INT32(GrB_Vector w, const GrB_Vector mask, const GrB_BinaryOp accum, const GrB_BinaryOp op, const GrB_Vector u, int32_t y, const GrB_Descriptor desc); +extern GrB_Info GrB_Vector_apply_BinaryOp2nd_INT64(GrB_Vector w, const GrB_Vector mask, const GrB_BinaryOp accum, const GrB_BinaryOp op, const GrB_Vector u, int64_t y, const GrB_Descriptor desc); +extern GrB_Info GrB_Vector_apply_BinaryOp2nd_Scalar(GrB_Vector w, const GrB_Vector mask, const GrB_BinaryOp accum, const GrB_BinaryOp op, const GrB_Vector u, const GrB_Scalar y, const GrB_Descriptor desc); +extern GrB_Info GrB_Vector_apply_BinaryOp2nd_UDT(GrB_Vector w, const GrB_Vector mask, const GrB_BinaryOp accum, const GrB_BinaryOp op, const GrB_Vector u, const void *y, const GrB_Descriptor desc); +extern GrB_Info GrB_Vector_apply_BinaryOp2nd_UINT8(GrB_Vector w, const GrB_Vector mask, const GrB_BinaryOp accum, const GrB_BinaryOp op, const GrB_Vector u, uint8_t y, const GrB_Descriptor desc); +extern GrB_Info GrB_Vector_apply_BinaryOp2nd_UINT16(GrB_Vector w, const GrB_Vector mask, const GrB_BinaryOp accum, const GrB_BinaryOp op, const GrB_Vector u, uint16_t y, const GrB_Descriptor desc); +extern GrB_Info GrB_Vector_apply_BinaryOp2nd_UINT32(GrB_Vector w, const GrB_Vector mask, const GrB_BinaryOp accum, const GrB_BinaryOp op, const GrB_Vector u, uint32_t y, const GrB_Descriptor desc); +extern GrB_Info GrB_Vector_apply_BinaryOp2nd_UINT64(GrB_Vector w, const GrB_Vector mask, const GrB_BinaryOp accum, const GrB_BinaryOp op, const GrB_Vector u, uint64_t y, const GrB_Descriptor desc); +extern GrB_Info GrB_Vector_apply_IndexOp_BOOL(GrB_Vector w, const GrB_Vector mask, const GrB_BinaryOp accum, const GrB_IndexUnaryOp op, const GrB_Vector u, bool y, const GrB_Descriptor desc); +extern GrB_Info GrB_Vector_apply_IndexOp_FP32(GrB_Vector w, const GrB_Vector mask, const GrB_BinaryOp accum, const GrB_IndexUnaryOp op, const GrB_Vector u, float y, const GrB_Descriptor desc); +extern GrB_Info GrB_Vector_apply_IndexOp_FP64(GrB_Vector w, const GrB_Vector mask, const GrB_BinaryOp accum, const GrB_IndexUnaryOp op, const GrB_Vector u, double y, const GrB_Descriptor desc); +extern GrB_Info GrB_Vector_apply_IndexOp_INT8(GrB_Vector w, const GrB_Vector mask, const GrB_BinaryOp accum, const GrB_IndexUnaryOp op, const GrB_Vector u, int8_t y, const GrB_Descriptor desc); +extern GrB_Info GrB_Vector_apply_IndexOp_INT16(GrB_Vector w, const GrB_Vector mask, const GrB_BinaryOp accum, const GrB_IndexUnaryOp op, const GrB_Vector u, int16_t y, const GrB_Descriptor desc); +extern GrB_Info GrB_Vector_apply_IndexOp_INT32(GrB_Vector w, const GrB_Vector mask, const GrB_BinaryOp accum, const GrB_IndexUnaryOp op, const GrB_Vector u, int32_t y, const GrB_Descriptor desc); +extern GrB_Info GrB_Vector_apply_IndexOp_INT64(GrB_Vector w, const GrB_Vector mask, const GrB_BinaryOp accum, const GrB_IndexUnaryOp op, const GrB_Vector u, int64_t y, const GrB_Descriptor desc); +extern GrB_Info GrB_Vector_apply_IndexOp_Scalar(GrB_Vector w, const GrB_Vector mask, const GrB_BinaryOp accum, const GrB_IndexUnaryOp op, const GrB_Vector u, const GrB_Scalar y, const GrB_Descriptor desc); +extern GrB_Info GrB_Vector_apply_IndexOp_UDT(GrB_Vector w, const GrB_Vector mask, const GrB_BinaryOp accum, const GrB_IndexUnaryOp op, const GrB_Vector u, const void *y, const GrB_Descriptor desc); +extern GrB_Info GrB_Vector_apply_IndexOp_UINT8(GrB_Vector w, const GrB_Vector mask, const GrB_BinaryOp accum, const GrB_IndexUnaryOp op, const GrB_Vector u, uint8_t y, const GrB_Descriptor desc); +extern GrB_Info GrB_Vector_apply_IndexOp_UINT16(GrB_Vector w, const GrB_Vector mask, const GrB_BinaryOp accum, const GrB_IndexUnaryOp op, const GrB_Vector u, uint16_t y, const GrB_Descriptor desc); +extern GrB_Info GrB_Vector_apply_IndexOp_UINT32(GrB_Vector w, const GrB_Vector mask, const GrB_BinaryOp accum, const GrB_IndexUnaryOp op, const GrB_Vector u, uint32_t y, const GrB_Descriptor desc); +extern GrB_Info GrB_Vector_apply_IndexOp_UINT64(GrB_Vector w, const GrB_Vector mask, const GrB_BinaryOp accum, const GrB_IndexUnaryOp op, const GrB_Vector u, uint64_t y, const GrB_Descriptor desc); +extern GrB_Info GrB_Vector_assign(GrB_Vector w, const GrB_Vector mask, const GrB_BinaryOp accum, const GrB_Vector u, const GrB_Index *I, GrB_Index ni, const GrB_Descriptor desc); +extern GrB_Info GrB_Vector_assign_BOOL(GrB_Vector w, const GrB_Vector mask, const GrB_BinaryOp accum, bool x, const GrB_Index *I, GrB_Index ni, const GrB_Descriptor desc); +extern GrB_Info GrB_Vector_assign_FP32(GrB_Vector w, const GrB_Vector mask, const GrB_BinaryOp accum, float x, const GrB_Index *I, GrB_Index ni, const GrB_Descriptor desc); +extern GrB_Info GrB_Vector_assign_FP64(GrB_Vector w, const GrB_Vector mask, const GrB_BinaryOp accum, double x, const GrB_Index *I, GrB_Index ni, const GrB_Descriptor desc); +extern GrB_Info GrB_Vector_assign_INT8(GrB_Vector w, const GrB_Vector mask, const GrB_BinaryOp accum, int8_t x, const GrB_Index *I, GrB_Index ni, const GrB_Descriptor desc); +extern GrB_Info GrB_Vector_assign_INT16(GrB_Vector w, const GrB_Vector mask, const GrB_BinaryOp accum, int16_t x, const GrB_Index *I, GrB_Index ni, const GrB_Descriptor desc); +extern GrB_Info GrB_Vector_assign_INT32(GrB_Vector w, const GrB_Vector mask, const GrB_BinaryOp accum, int32_t x, const GrB_Index *I, GrB_Index ni, const GrB_Descriptor desc); +extern GrB_Info GrB_Vector_assign_INT64(GrB_Vector w, const GrB_Vector mask, const GrB_BinaryOp accum, int64_t x, const GrB_Index *I, GrB_Index ni, const GrB_Descriptor desc); +extern GrB_Info GrB_Vector_assign_Scalar(GrB_Vector w, const GrB_Vector mask, const GrB_BinaryOp accum, GrB_Scalar x, const GrB_Index *I, GrB_Index ni, const GrB_Descriptor desc); +extern GrB_Info GrB_Vector_assign_UDT(GrB_Vector w, const GrB_Vector mask, const GrB_BinaryOp accum, void *x, const GrB_Index *I, GrB_Index ni, const GrB_Descriptor desc); +extern GrB_Info GrB_Vector_assign_UINT8(GrB_Vector w, const GrB_Vector mask, const GrB_BinaryOp accum, uint8_t x, const GrB_Index *I, GrB_Index ni, const GrB_Descriptor desc); +extern GrB_Info GrB_Vector_assign_UINT16(GrB_Vector w, const GrB_Vector mask, const GrB_BinaryOp accum, uint16_t x, const GrB_Index *I, GrB_Index ni, const GrB_Descriptor desc); +extern GrB_Info GrB_Vector_assign_UINT32(GrB_Vector w, const GrB_Vector mask, const GrB_BinaryOp accum, uint32_t x, const GrB_Index *I, GrB_Index ni, const GrB_Descriptor desc); +extern GrB_Info GrB_Vector_assign_UINT64(GrB_Vector w, const GrB_Vector mask, const GrB_BinaryOp accum, uint64_t x, const GrB_Index *I, GrB_Index ni, const GrB_Descriptor desc); +extern GrB_Info GrB_Vector_build_BOOL(GrB_Vector w, const GrB_Index *I, const bool *X, GrB_Index nvals, const GrB_BinaryOp dup); +extern GrB_Info GrB_Vector_build_FP32(GrB_Vector w, const GrB_Index *I, const float *X, GrB_Index nvals, const GrB_BinaryOp dup); +extern GrB_Info GrB_Vector_build_FP64(GrB_Vector w, const GrB_Index *I, const double *X, GrB_Index nvals, const GrB_BinaryOp dup); +extern GrB_Info GrB_Vector_build_INT8(GrB_Vector w, const GrB_Index *I, const int8_t *X, GrB_Index nvals, const GrB_BinaryOp dup); +extern GrB_Info GrB_Vector_build_INT16(GrB_Vector w, const GrB_Index *I, const int16_t *X, GrB_Index nvals, const GrB_BinaryOp dup); +extern GrB_Info GrB_Vector_build_INT32(GrB_Vector w, const GrB_Index *I, const int32_t *X, GrB_Index nvals, const GrB_BinaryOp dup); +extern GrB_Info GrB_Vector_build_INT64(GrB_Vector w, const GrB_Index *I, const int64_t *X, GrB_Index nvals, const GrB_BinaryOp dup); +extern GrB_Info GrB_Vector_build_UDT(GrB_Vector w, const GrB_Index *I, const void *X, GrB_Index nvals, const GrB_BinaryOp dup); +extern GrB_Info GrB_Vector_build_UINT8(GrB_Vector w, const GrB_Index *I, const uint8_t *X, GrB_Index nvals, const GrB_BinaryOp dup); +extern GrB_Info GrB_Vector_build_UINT16(GrB_Vector w, const GrB_Index *I, const uint16_t *X, GrB_Index nvals, const GrB_BinaryOp dup); +extern GrB_Info GrB_Vector_build_UINT32(GrB_Vector w, const GrB_Index *I, const uint32_t *X, GrB_Index nvals, const GrB_BinaryOp dup); +extern GrB_Info GrB_Vector_build_UINT64(GrB_Vector w, const GrB_Index *I, const uint64_t *X, GrB_Index nvals, const GrB_BinaryOp dup); +extern GrB_Info GrB_Vector_clear(GrB_Vector v); +extern GrB_Info GrB_Vector_dup(GrB_Vector *w, const GrB_Vector u); +extern GrB_Info GrB_Vector_eWiseAdd_BinaryOp(GrB_Vector w, const GrB_Vector mask, const GrB_BinaryOp accum, const GrB_BinaryOp add, const GrB_Vector u, const GrB_Vector v, const GrB_Descriptor desc); +extern GrB_Info GrB_Vector_eWiseAdd_Monoid(GrB_Vector w, const GrB_Vector mask, const GrB_BinaryOp accum, const GrB_Monoid monoid, const GrB_Vector u, const GrB_Vector v, const GrB_Descriptor desc); +extern GrB_Info GrB_Vector_eWiseAdd_Semiring(GrB_Vector w, const GrB_Vector mask, const GrB_BinaryOp accum, const GrB_Semiring semiring, const GrB_Vector u, const GrB_Vector v, const GrB_Descriptor desc); +extern GrB_Info GrB_Vector_eWiseMult_BinaryOp(GrB_Vector w, const GrB_Vector mask, const GrB_BinaryOp accum, const GrB_BinaryOp mult, const GrB_Vector u, const GrB_Vector v, const GrB_Descriptor desc); +extern GrB_Info GrB_Vector_eWiseMult_Monoid(GrB_Vector w, const GrB_Vector mask, const GrB_BinaryOp accum, const GrB_Monoid monoid, const GrB_Vector u, const GrB_Vector v, const GrB_Descriptor desc); +extern GrB_Info GrB_Vector_eWiseMult_Semiring(GrB_Vector w, const GrB_Vector mask, const GrB_BinaryOp accum, const GrB_Semiring semiring, const GrB_Vector u, const GrB_Vector v, const GrB_Descriptor desc); +extern GrB_Info GrB_Vector_error(const char **error, const GrB_Vector v); +extern GrB_Info GrB_Vector_extract(GrB_Vector w, const GrB_Vector mask, const GrB_BinaryOp accum, const GrB_Vector u, const GrB_Index *I, GrB_Index ni, const GrB_Descriptor desc); +extern GrB_Info GrB_Vector_extractElement_BOOL(bool *x, const GrB_Vector v, GrB_Index i); +extern GrB_Info GrB_Vector_extractElement_FP32(float *x, const GrB_Vector v, GrB_Index i); +extern GrB_Info GrB_Vector_extractElement_FP64(double *x, const GrB_Vector v, GrB_Index i); +extern GrB_Info GrB_Vector_extractElement_INT8(int8_t *x, const GrB_Vector v, GrB_Index i); +extern GrB_Info GrB_Vector_extractElement_INT16(int16_t *x, const GrB_Vector v, GrB_Index i); +extern GrB_Info GrB_Vector_extractElement_INT32(int32_t *x, const GrB_Vector v, GrB_Index i); +extern GrB_Info GrB_Vector_extractElement_INT64(int64_t *x, const GrB_Vector v, GrB_Index i); +extern GrB_Info GrB_Vector_extractElement_Scalar(GrB_Scalar x, const GrB_Vector v, GrB_Index i); +extern GrB_Info GrB_Vector_extractElement_UDT(void *x, const GrB_Vector v, GrB_Index i); +extern GrB_Info GrB_Vector_extractElement_UINT8(uint8_t *x, const GrB_Vector v, GrB_Index i); +extern GrB_Info GrB_Vector_extractElement_UINT16(uint16_t *x, const GrB_Vector v, GrB_Index i); +extern GrB_Info GrB_Vector_extractElement_UINT32(uint32_t *x, const GrB_Vector v, GrB_Index i); +extern GrB_Info GrB_Vector_extractElement_UINT64(uint64_t *x, const GrB_Vector v, GrB_Index i); +extern GrB_Info GrB_Vector_extractTuples_BOOL(GrB_Index *I, bool *X, GrB_Index *nvals, const GrB_Vector v); +extern GrB_Info GrB_Vector_extractTuples_FP32(GrB_Index *I, float *X, GrB_Index *nvals, const GrB_Vector v); +extern GrB_Info GrB_Vector_extractTuples_FP64(GrB_Index *I, double *X, GrB_Index *nvals, const GrB_Vector v); +extern GrB_Info GrB_Vector_extractTuples_INT8(GrB_Index *I, int8_t *X, GrB_Index *nvals, const GrB_Vector v); +extern GrB_Info GrB_Vector_extractTuples_INT16(GrB_Index *I, int16_t *X, GrB_Index *nvals, const GrB_Vector v); +extern GrB_Info GrB_Vector_extractTuples_INT32(GrB_Index *I, int32_t *X, GrB_Index *nvals, const GrB_Vector v); +extern GrB_Info GrB_Vector_extractTuples_INT64(GrB_Index *I, int64_t *X, GrB_Index *nvals, const GrB_Vector v); +extern GrB_Info GrB_Vector_extractTuples_UDT(GrB_Index *I, void *X, GrB_Index *nvals, const GrB_Vector v); +extern GrB_Info GrB_Vector_extractTuples_UINT8(GrB_Index *I, uint8_t *X, GrB_Index *nvals, const GrB_Vector v); +extern GrB_Info GrB_Vector_extractTuples_UINT16(GrB_Index *I, uint16_t *X, GrB_Index *nvals, const GrB_Vector v); +extern GrB_Info GrB_Vector_extractTuples_UINT32(GrB_Index *I, uint32_t *X, GrB_Index *nvals, const GrB_Vector v); +extern GrB_Info GrB_Vector_extractTuples_UINT64(GrB_Index *I, uint64_t *X, GrB_Index *nvals, const GrB_Vector v); +extern GrB_Info GrB_Vector_free(GrB_Vector *v); +extern GrB_Info GrB_Vector_new(GrB_Vector *v, GrB_Type type, GrB_Index n); +extern GrB_Info GrB_Vector_nvals(GrB_Index *nvals, const GrB_Vector v); +extern GrB_Info GrB_Vector_reduce_BOOL(bool *c, const GrB_BinaryOp accum, const GrB_Monoid monoid, const GrB_Vector u, const GrB_Descriptor desc); +extern GrB_Info GrB_Vector_reduce_BinaryOp_Scalar(GrB_Scalar c, const GrB_BinaryOp accum, const GrB_BinaryOp op, const GrB_Vector u, const GrB_Descriptor desc); +extern GrB_Info GrB_Vector_reduce_FP32(float *c, const GrB_BinaryOp accum, const GrB_Monoid monoid, const GrB_Vector u, const GrB_Descriptor desc); +extern GrB_Info GrB_Vector_reduce_FP64(double *c, const GrB_BinaryOp accum, const GrB_Monoid monoid, const GrB_Vector u, const GrB_Descriptor desc); +extern GrB_Info GrB_Vector_reduce_INT8(int8_t *c, const GrB_BinaryOp accum, const GrB_Monoid monoid, const GrB_Vector u, const GrB_Descriptor desc); +extern GrB_Info GrB_Vector_reduce_INT16(int16_t *c, const GrB_BinaryOp accum, const GrB_Monoid monoid, const GrB_Vector u, const GrB_Descriptor desc); +extern GrB_Info GrB_Vector_reduce_INT32(int32_t *c, const GrB_BinaryOp accum, const GrB_Monoid monoid, const GrB_Vector u, const GrB_Descriptor desc); +extern GrB_Info GrB_Vector_reduce_INT64(int64_t *c, const GrB_BinaryOp accum, const GrB_Monoid monoid, const GrB_Vector u, const GrB_Descriptor desc); +extern GrB_Info GrB_Vector_reduce_Monoid_Scalar(GrB_Scalar c, const GrB_BinaryOp accum, const GrB_Monoid monoid, const GrB_Vector u, const GrB_Descriptor desc); +extern GrB_Info GrB_Vector_reduce_UDT(void *c, const GrB_BinaryOp accum, const GrB_Monoid monoid, const GrB_Vector u, const GrB_Descriptor desc); +extern GrB_Info GrB_Vector_reduce_UINT8(uint8_t *c, const GrB_BinaryOp accum, const GrB_Monoid monoid, const GrB_Vector u, const GrB_Descriptor desc); +extern GrB_Info GrB_Vector_reduce_UINT16(uint16_t *c, const GrB_BinaryOp accum, const GrB_Monoid monoid, const GrB_Vector u, const GrB_Descriptor desc); +extern GrB_Info GrB_Vector_reduce_UINT32(uint32_t *c, const GrB_BinaryOp accum, const GrB_Monoid monoid, const GrB_Vector u, const GrB_Descriptor desc); +extern GrB_Info GrB_Vector_reduce_UINT64(uint64_t *c, const GrB_BinaryOp accum, const GrB_Monoid monoid, const GrB_Vector u, const GrB_Descriptor desc); +extern GrB_Info GrB_Vector_removeElement(GrB_Vector v, GrB_Index i); +extern GrB_Info GrB_Vector_resize(GrB_Vector w, GrB_Index nrows_new); +extern GrB_Info GrB_Vector_select_BOOL(GrB_Vector w, const GrB_Vector mask, const GrB_BinaryOp accum, const GrB_IndexUnaryOp op, const GrB_Vector u, bool y, const GrB_Descriptor desc); +extern GrB_Info GrB_Vector_select_FP32(GrB_Vector w, const GrB_Vector mask, const GrB_BinaryOp accum, const GrB_IndexUnaryOp op, const GrB_Vector u, float y, const GrB_Descriptor desc); +extern GrB_Info GrB_Vector_select_FP64(GrB_Vector w, const GrB_Vector mask, const GrB_BinaryOp accum, const GrB_IndexUnaryOp op, const GrB_Vector u, double y, const GrB_Descriptor desc); +extern GrB_Info GrB_Vector_select_INT8(GrB_Vector w, const GrB_Vector mask, const GrB_BinaryOp accum, const GrB_IndexUnaryOp op, const GrB_Vector u, int8_t y, const GrB_Descriptor desc); +extern GrB_Info GrB_Vector_select_INT16(GrB_Vector w, const GrB_Vector mask, const GrB_BinaryOp accum, const GrB_IndexUnaryOp op, const GrB_Vector u, int16_t y, const GrB_Descriptor desc); +extern GrB_Info GrB_Vector_select_INT32(GrB_Vector w, const GrB_Vector mask, const GrB_BinaryOp accum, const GrB_IndexUnaryOp op, const GrB_Vector u, int32_t y, const GrB_Descriptor desc); +extern GrB_Info GrB_Vector_select_INT64(GrB_Vector w, const GrB_Vector mask, const GrB_BinaryOp accum, const GrB_IndexUnaryOp op, const GrB_Vector u, int64_t y, const GrB_Descriptor desc); +extern GrB_Info GrB_Vector_select_Scalar(GrB_Vector w, const GrB_Vector mask, const GrB_BinaryOp accum, const GrB_IndexUnaryOp op, const GrB_Vector u, const GrB_Scalar y, const GrB_Descriptor desc); +extern GrB_Info GrB_Vector_select_UDT(GrB_Vector w, const GrB_Vector mask, const GrB_BinaryOp accum, const GrB_IndexUnaryOp op, const GrB_Vector u, const void *y, const GrB_Descriptor desc); +extern GrB_Info GrB_Vector_select_UINT8(GrB_Vector w, const GrB_Vector mask, const GrB_BinaryOp accum, const GrB_IndexUnaryOp op, const GrB_Vector u, uint8_t y, const GrB_Descriptor desc); +extern GrB_Info GrB_Vector_select_UINT16(GrB_Vector w, const GrB_Vector mask, const GrB_BinaryOp accum, const GrB_IndexUnaryOp op, const GrB_Vector u, uint16_t y, const GrB_Descriptor desc); +extern GrB_Info GrB_Vector_select_UINT32(GrB_Vector w, const GrB_Vector mask, const GrB_BinaryOp accum, const GrB_IndexUnaryOp op, const GrB_Vector u, uint32_t y, const GrB_Descriptor desc); +extern GrB_Info GrB_Vector_select_UINT64(GrB_Vector w, const GrB_Vector mask, const GrB_BinaryOp accum, const GrB_IndexUnaryOp op, const GrB_Vector u, uint64_t y, const GrB_Descriptor desc); +extern GrB_Info GrB_Vector_setElement_BOOL(GrB_Vector w, bool x, GrB_Index i); +extern GrB_Info GrB_Vector_setElement_FP32(GrB_Vector w, float x, GrB_Index i); +extern GrB_Info GrB_Vector_setElement_FP64(GrB_Vector w, double x, GrB_Index i); +extern GrB_Info GrB_Vector_setElement_INT8(GrB_Vector w, int8_t x, GrB_Index i); +extern GrB_Info GrB_Vector_setElement_INT16(GrB_Vector w, int16_t x, GrB_Index i); +extern GrB_Info GrB_Vector_setElement_INT32(GrB_Vector w, int32_t x, GrB_Index i); +extern GrB_Info GrB_Vector_setElement_INT64(GrB_Vector w, int64_t x, GrB_Index i); +extern GrB_Info GrB_Vector_setElement_Scalar(GrB_Vector w, GrB_Scalar x, GrB_Index i); +extern GrB_Info GrB_Vector_setElement_UDT(GrB_Vector w, void *x, GrB_Index i); +extern GrB_Info GrB_Vector_setElement_UINT8(GrB_Vector w, uint8_t x, GrB_Index i); +extern GrB_Info GrB_Vector_setElement_UINT16(GrB_Vector w, uint16_t x, GrB_Index i); +extern GrB_Info GrB_Vector_setElement_UINT32(GrB_Vector w, uint32_t x, GrB_Index i); +extern GrB_Info GrB_Vector_setElement_UINT64(GrB_Vector w, uint64_t x, GrB_Index i); +extern GrB_Info GrB_Vector_size(GrB_Index *n, const GrB_Vector v); +extern GrB_Info GrB_Vector_wait(GrB_Vector v, GrB_WaitMode waitmode); + +/*************** +* GB functions * +***************/ + +/* binary */ +extern GrB_Info GB_BinaryOp_new(GrB_BinaryOp *binaryop, GxB_binary_function function, GrB_Type ztype, GrB_Type xtype, GrB_Type ytype, const char *binop_name); + +/* iterator */ +extern GrB_Info GB_Iterator_rc_bitmap_next(GxB_Iterator iterator); +extern GrB_Info GB_Iterator_rc_seek(GxB_Iterator iterator, GrB_Index j, bool jth_vector); +extern GrB_Info GB_Vector_Iterator_bitmap_seek(GxB_Iterator iterator, GrB_Index unused); + +/* matrix */ +extern GrB_Info GB_Iterator_attach(GxB_Iterator iterator, GrB_Matrix A, GxB_Format_Value format, GrB_Descriptor desc); + +/* selectop */ +extern GrB_Info GB_SelectOp_new(GxB_SelectOp *selectop, GxB_select_function function, GrB_Type xtype, GrB_Type ttype, const char *name); + +/* type */ +extern GrB_Info GB_Type_new(GrB_Type *type, size_t sizeof_ctype, const char *type_name); + +/* unary */ +extern GrB_Info GB_UnaryOp_new(GrB_UnaryOp *unaryop, GxB_unary_function function, GrB_Type ztype, GrB_Type xtype, const char *unop_name); + +/**************** +* GxB functions * +****************/ + +/* binary */ +extern GrB_Info GxB_BinaryOp_fprint(GrB_BinaryOp binaryop, const char *name, GxB_Print_Level pr, FILE *f); +extern GrB_Info GxB_BinaryOp_new(GrB_BinaryOp *op, GxB_binary_function function, GrB_Type ztype, GrB_Type xtype, GrB_Type ytype, const char *binop_name, const char *binop_defn); +extern GrB_Info GxB_BinaryOp_xtype(GrB_Type *xtype, GrB_BinaryOp binaryop); +extern GrB_Info GxB_BinaryOp_xtype_name(char *type_name, const GrB_BinaryOp binaryop); +extern GrB_Info GxB_BinaryOp_ytype(GrB_Type *ytype, GrB_BinaryOp binaryop); +extern GrB_Info GxB_BinaryOp_ytype_name(char *type_name, const GrB_BinaryOp binaryop); +extern GrB_Info GxB_BinaryOp_ztype(GrB_Type *ztype, GrB_BinaryOp binaryop); +extern GrB_Info GxB_BinaryOp_ztype_name(char *type_name, const GrB_BinaryOp binaryop); + +/* core */ +extern GrB_Info GxB_Global_Option_get(GxB_Option_Field field, char *); +extern GrB_Info GxB_Global_Option_set(GxB_Option_Field field, char *); +extern GrB_Info GxB_deserialize_type_name(char *type_name, const void *blob, GrB_Index blob_size); +extern GrB_Info GxB_init(GrB_Mode mode, void *(*user_malloc_function)(size_t), void *(*user_calloc_function)(size_t, size_t), void *(*user_realloc_function)(void *, size_t), void (*user_free_function)(void *)); + +/* descriptor */ +extern GrB_Info GxB_Desc_get(GrB_Descriptor desc, GrB_Desc_Field field, char *); +extern GrB_Info GxB_Desc_set(GrB_Descriptor desc, GrB_Desc_Field field, char *); +extern GrB_Info GxB_Descriptor_fprint(GrB_Descriptor descriptor, const char *name, GxB_Print_Level pr, FILE *f); +extern GrB_Info GxB_Descriptor_get(GrB_Desc_Value *val, GrB_Descriptor desc, GrB_Desc_Field field); + +/* indexunary */ +extern GrB_Info GxB_IndexUnaryOp_fprint(GrB_IndexUnaryOp op, const char *name, GxB_Print_Level pr, FILE *f); +extern GrB_Info GxB_IndexUnaryOp_new(GrB_IndexUnaryOp *op, GxB_index_unary_function function, GrB_Type ztype, GrB_Type xtype, GrB_Type ytype, const char *idxop_name, const char *idxop_defn); +extern GrB_Info GxB_IndexUnaryOp_xtype_name(char *type_name, const GrB_IndexUnaryOp op); +extern GrB_Info GxB_IndexUnaryOp_ytype_name(char *type_name, const GrB_IndexUnaryOp op); +extern GrB_Info GxB_IndexUnaryOp_ztype_name(char *type_name, const GrB_IndexUnaryOp op); + +/* iterator */ +extern GrB_Index GxB_Matrix_Iterator_getp(GxB_Iterator iterator); +extern GrB_Index GxB_Matrix_Iterator_getpmax(GxB_Iterator iterator); +extern GrB_Index GxB_Vector_Iterator_getIndex(GxB_Iterator iterator); +extern GrB_Index GxB_Vector_Iterator_getp(GxB_Iterator iterator); +extern GrB_Index GxB_Vector_Iterator_getpmax(GxB_Iterator iterator); +extern GrB_Index GxB_colIterator_getColIndex(GxB_Iterator iterator); +extern GrB_Index GxB_colIterator_getRowIndex(GxB_Iterator iterator); +extern GrB_Index GxB_colIterator_kount(GxB_Iterator iterator); +extern GrB_Index GxB_rowIterator_getColIndex(GxB_Iterator iterator); +extern GrB_Index GxB_rowIterator_getRowIndex(GxB_Iterator iterator); +extern GrB_Index GxB_rowIterator_kount(GxB_Iterator iterator); +extern GrB_Info GxB_Iterator_free(GxB_Iterator *iterator); +extern GrB_Info GxB_Iterator_new(GxB_Iterator *iterator); +extern GrB_Info GxB_Matrix_Iterator_next(GxB_Iterator iterator); +extern GrB_Info GxB_Matrix_Iterator_seek(GxB_Iterator iterator, GrB_Index p); +extern GrB_Info GxB_Vector_Iterator_next(GxB_Iterator iterator); +extern GrB_Info GxB_Vector_Iterator_seek(GxB_Iterator iterator, GrB_Index p); +extern GrB_Info GxB_colIterator_kseek(GxB_Iterator iterator, GrB_Index k); +extern GrB_Info GxB_colIterator_nextCol(GxB_Iterator iterator); +extern GrB_Info GxB_colIterator_nextRow(GxB_Iterator iterator); +extern GrB_Info GxB_colIterator_seekCol(GxB_Iterator iterator, GrB_Index col); +extern GrB_Info GxB_rowIterator_kseek(GxB_Iterator iterator, GrB_Index k); +extern GrB_Info GxB_rowIterator_nextCol(GxB_Iterator iterator); +extern GrB_Info GxB_rowIterator_nextRow(GxB_Iterator iterator); +extern GrB_Info GxB_rowIterator_seekRow(GxB_Iterator iterator, GrB_Index row); +extern GxB_FC32_t GxB_Iterator_get_FC32(GxB_Iterator iterator); +extern GxB_FC64_t GxB_Iterator_get_FC64(GxB_Iterator iterator); +extern bool GxB_Iterator_get_BOOL(GxB_Iterator iterator); +extern double GxB_Iterator_get_FP64(GxB_Iterator iterator); +extern float GxB_Iterator_get_FP32(GxB_Iterator iterator); +extern int8_t GxB_Iterator_get_INT8(GxB_Iterator iterator); +extern int16_t GxB_Iterator_get_INT16(GxB_Iterator iterator); +extern int32_t GxB_Iterator_get_INT32(GxB_Iterator iterator); +extern int64_t GxB_Iterator_get_INT64(GxB_Iterator iterator); +extern uint8_t GxB_Iterator_get_UINT8(GxB_Iterator iterator); +extern uint16_t GxB_Iterator_get_UINT16(GxB_Iterator iterator); +extern uint32_t GxB_Iterator_get_UINT32(GxB_Iterator iterator); +extern uint64_t GxB_Iterator_get_UINT64(GxB_Iterator iterator); +extern void GxB_Iterator_get_UDT(GxB_Iterator iterator, void *value); +extern void GxB_Matrix_Iterator_getIndex(GxB_Iterator iterator, GrB_Index *row, GrB_Index *col); + +/* matrix */ +extern GrB_Info GxB_Col_subassign(GrB_Matrix C, const GrB_Vector mask, const GrB_BinaryOp accum, const GrB_Vector u, const GrB_Index *I, GrB_Index ni, GrB_Index j, const GrB_Descriptor desc); +extern GrB_Info GxB_Matrix_Iterator_attach(GxB_Iterator iterator, GrB_Matrix A, GrB_Descriptor desc); +extern GrB_Info GxB_Matrix_Option_get(GrB_Matrix A, GxB_Option_Field field, char *); +extern GrB_Info GxB_Matrix_Option_set(GrB_Matrix A, GxB_Option_Field field, char *); +extern GrB_Info GxB_Matrix_apply_BinaryOp1st(GrB_Matrix C, const GrB_Matrix Mask, const GrB_BinaryOp accum, const GrB_BinaryOp op, const GrB_Scalar x, const GrB_Matrix A, const GrB_Descriptor desc); +extern GrB_Info GxB_Matrix_apply_BinaryOp1st_FC32(GrB_Matrix C, const GrB_Matrix Mask, const GrB_BinaryOp accum, const GrB_BinaryOp op, GxB_FC32_t x, const GrB_Matrix A, const GrB_Descriptor desc); +extern GrB_Info GxB_Matrix_apply_BinaryOp1st_FC64(GrB_Matrix C, const GrB_Matrix Mask, const GrB_BinaryOp accum, const GrB_BinaryOp op, GxB_FC64_t x, const GrB_Matrix A, const GrB_Descriptor desc); +extern GrB_Info GxB_Matrix_apply_BinaryOp2nd(GrB_Matrix C, const GrB_Matrix Mask, const GrB_BinaryOp accum, const GrB_BinaryOp op, const GrB_Matrix A, const GrB_Scalar y, const GrB_Descriptor desc); +extern GrB_Info GxB_Matrix_apply_BinaryOp2nd_FC32(GrB_Matrix C, const GrB_Matrix Mask, const GrB_BinaryOp accum, const GrB_BinaryOp op, const GrB_Matrix A, GxB_FC32_t y, const GrB_Descriptor desc); +extern GrB_Info GxB_Matrix_apply_BinaryOp2nd_FC64(GrB_Matrix C, const GrB_Matrix Mask, const GrB_BinaryOp accum, const GrB_BinaryOp op, const GrB_Matrix A, GxB_FC64_t y, const GrB_Descriptor desc); +extern GrB_Info GxB_Matrix_apply_IndexOp_FC32(GrB_Matrix C, const GrB_Matrix Mask, const GrB_BinaryOp accum, const GrB_IndexUnaryOp op, const GrB_Matrix A, GxB_FC32_t y, const GrB_Descriptor desc); +extern GrB_Info GxB_Matrix_apply_IndexOp_FC64(GrB_Matrix C, const GrB_Matrix Mask, const GrB_BinaryOp accum, const GrB_IndexUnaryOp op, const GrB_Matrix A, GxB_FC64_t y, const GrB_Descriptor desc); +extern GrB_Info GxB_Matrix_assign_FC32(GrB_Matrix C, const GrB_Matrix Mask, const GrB_BinaryOp accum, GxB_FC32_t x, const GrB_Index *I, GrB_Index ni, const GrB_Index *J, GrB_Index nj, const GrB_Descriptor desc); +extern GrB_Info GxB_Matrix_assign_FC64(GrB_Matrix C, const GrB_Matrix Mask, const GrB_BinaryOp accum, GxB_FC64_t x, const GrB_Index *I, GrB_Index ni, const GrB_Index *J, GrB_Index nj, const GrB_Descriptor desc); +extern GrB_Info GxB_Matrix_build_FC32(GrB_Matrix C, const GrB_Index *I, const GrB_Index *J, const GxB_FC32_t *X, GrB_Index nvals, const GrB_BinaryOp dup); +extern GrB_Info GxB_Matrix_build_FC64(GrB_Matrix C, const GrB_Index *I, const GrB_Index *J, const GxB_FC64_t *X, GrB_Index nvals, const GrB_BinaryOp dup); +extern GrB_Info GxB_Matrix_build_Scalar(GrB_Matrix C, const GrB_Index *I, const GrB_Index *J, GrB_Scalar scalar, GrB_Index nvals); +extern GrB_Info GxB_Matrix_concat(GrB_Matrix C, const GrB_Matrix *Tiles, const GrB_Index m, const GrB_Index n, const GrB_Descriptor desc); +extern GrB_Info GxB_Matrix_deserialize(GrB_Matrix *C, GrB_Type type, const void *blob, GrB_Index blob_size, const GrB_Descriptor desc); +extern GrB_Info GxB_Matrix_diag(GrB_Matrix C, const GrB_Vector v, int64_t k, const GrB_Descriptor desc); +extern GrB_Info GxB_Matrix_eWiseUnion(GrB_Matrix C, const GrB_Matrix Mask, const GrB_BinaryOp accum, const GrB_BinaryOp add, const GrB_Matrix A, const GrB_Scalar alpha, const GrB_Matrix B, const GrB_Scalar beta, const GrB_Descriptor desc); +extern GrB_Info GxB_Matrix_export_BitmapC(GrB_Matrix *A, GrB_Type *type, GrB_Index *nrows, GrB_Index *ncols, int8_t **Ab, void **Ax, GrB_Index *Ab_size, GrB_Index *Ax_size, bool *iso, GrB_Index *nvals, const GrB_Descriptor desc); +extern GrB_Info GxB_Matrix_export_BitmapR(GrB_Matrix *A, GrB_Type *type, GrB_Index *nrows, GrB_Index *ncols, int8_t **Ab, void **Ax, GrB_Index *Ab_size, GrB_Index *Ax_size, bool *iso, GrB_Index *nvals, const GrB_Descriptor desc); +extern GrB_Info GxB_Matrix_export_CSC(GrB_Matrix *A, GrB_Type *type, GrB_Index *nrows, GrB_Index *ncols, GrB_Index **Ap, GrB_Index **Ai, void **Ax, GrB_Index *Ap_size, GrB_Index *Ai_size, GrB_Index *Ax_size, bool *iso, bool *jumbled, const GrB_Descriptor desc); +extern GrB_Info GxB_Matrix_export_CSR(GrB_Matrix *A, GrB_Type *type, GrB_Index *nrows, GrB_Index *ncols, GrB_Index **Ap, GrB_Index **Aj, void **Ax, GrB_Index *Ap_size, GrB_Index *Aj_size, GrB_Index *Ax_size, bool *iso, bool *jumbled, const GrB_Descriptor desc); +extern GrB_Info GxB_Matrix_export_FC32(GrB_Index *Ap, GrB_Index *Ai, GxB_FC32_t *Ax, GrB_Index *Ap_len, GrB_Index *Ai_len, GrB_Index *Ax_len, GrB_Format format, GrB_Matrix A); +extern GrB_Info GxB_Matrix_export_FC64(GrB_Index *Ap, GrB_Index *Ai, GxB_FC64_t *Ax, GrB_Index *Ap_len, GrB_Index *Ai_len, GrB_Index *Ax_len, GrB_Format format, GrB_Matrix A); +extern GrB_Info GxB_Matrix_export_FullC(GrB_Matrix *A, GrB_Type *type, GrB_Index *nrows, GrB_Index *ncols, void **Ax, GrB_Index *Ax_size, bool *iso, const GrB_Descriptor desc); +extern GrB_Info GxB_Matrix_export_FullR(GrB_Matrix *A, GrB_Type *type, GrB_Index *nrows, GrB_Index *ncols, void **Ax, GrB_Index *Ax_size, bool *iso, const GrB_Descriptor desc); +extern GrB_Info GxB_Matrix_export_HyperCSC(GrB_Matrix *A, GrB_Type *type, GrB_Index *nrows, GrB_Index *ncols, GrB_Index **Ap, GrB_Index **Ah, GrB_Index **Ai, void **Ax, GrB_Index *Ap_size, GrB_Index *Ah_size, GrB_Index *Ai_size, GrB_Index *Ax_size, bool *iso, GrB_Index *nvec, bool *jumbled, const GrB_Descriptor desc); +extern GrB_Info GxB_Matrix_export_HyperCSR(GrB_Matrix *A, GrB_Type *type, GrB_Index *nrows, GrB_Index *ncols, GrB_Index **Ap, GrB_Index **Ah, GrB_Index **Aj, void **Ax, GrB_Index *Ap_size, GrB_Index *Ah_size, GrB_Index *Aj_size, GrB_Index *Ax_size, bool *iso, GrB_Index *nvec, bool *jumbled, const GrB_Descriptor desc); +extern GrB_Info GxB_Matrix_extractElement_FC32(GxB_FC32_t *x, const GrB_Matrix A, GrB_Index i, GrB_Index j); +extern GrB_Info GxB_Matrix_extractElement_FC64(GxB_FC64_t *x, const GrB_Matrix A, GrB_Index i, GrB_Index j); +extern GrB_Info GxB_Matrix_extractTuples_FC32(GrB_Index *I, GrB_Index *J, GxB_FC32_t *X, GrB_Index *nvals, const GrB_Matrix A); +extern GrB_Info GxB_Matrix_extractTuples_FC64(GrB_Index *I, GrB_Index *J, GxB_FC64_t *X, GrB_Index *nvals, const GrB_Matrix A); +extern GrB_Info GxB_Matrix_fprint(GrB_Matrix A, const char *name, GxB_Print_Level pr, FILE *f); +extern GrB_Info GxB_Matrix_import_BitmapC(GrB_Matrix *A, GrB_Type type, GrB_Index nrows, GrB_Index ncols, int8_t **Ab, void **Ax, GrB_Index Ab_size, GrB_Index Ax_size, bool iso, GrB_Index nvals, const GrB_Descriptor desc); +extern GrB_Info GxB_Matrix_import_BitmapR(GrB_Matrix *A, GrB_Type type, GrB_Index nrows, GrB_Index ncols, int8_t **Ab, void **Ax, GrB_Index Ab_size, GrB_Index Ax_size, bool iso, GrB_Index nvals, const GrB_Descriptor desc); +extern GrB_Info GxB_Matrix_import_CSC(GrB_Matrix *A, GrB_Type type, GrB_Index nrows, GrB_Index ncols, GrB_Index **Ap, GrB_Index **Ai, void **Ax, GrB_Index Ap_size, GrB_Index Ai_size, GrB_Index Ax_size, bool iso, bool jumbled, const GrB_Descriptor desc); +extern GrB_Info GxB_Matrix_import_CSR(GrB_Matrix *A, GrB_Type type, GrB_Index nrows, GrB_Index ncols, GrB_Index **Ap, GrB_Index **Aj, void **Ax, GrB_Index Ap_size, GrB_Index Aj_size, GrB_Index Ax_size, bool iso, bool jumbled, const GrB_Descriptor desc); +extern GrB_Info GxB_Matrix_import_FC32(GrB_Matrix *A, GrB_Type type, GrB_Index nrows, GrB_Index ncols, const GrB_Index *Ap, const GrB_Index *Ai, const GxB_FC32_t *Ax, GrB_Index Ap_len, GrB_Index Ai_len, GrB_Index Ax_len, GrB_Format format); +extern GrB_Info GxB_Matrix_import_FC64(GrB_Matrix *A, GrB_Type type, GrB_Index nrows, GrB_Index ncols, const GrB_Index *Ap, const GrB_Index *Ai, const GxB_FC64_t *Ax, GrB_Index Ap_len, GrB_Index Ai_len, GrB_Index Ax_len, GrB_Format format); +extern GrB_Info GxB_Matrix_import_FullC(GrB_Matrix *A, GrB_Type type, GrB_Index nrows, GrB_Index ncols, void **Ax, GrB_Index Ax_size, bool iso, const GrB_Descriptor desc); +extern GrB_Info GxB_Matrix_import_FullR(GrB_Matrix *A, GrB_Type type, GrB_Index nrows, GrB_Index ncols, void **Ax, GrB_Index Ax_size, bool iso, const GrB_Descriptor desc); +extern GrB_Info GxB_Matrix_import_HyperCSC(GrB_Matrix *A, GrB_Type type, GrB_Index nrows, GrB_Index ncols, GrB_Index **Ap, GrB_Index **Ah, GrB_Index **Ai, void **Ax, GrB_Index Ap_size, GrB_Index Ah_size, GrB_Index Ai_size, GrB_Index Ax_size, bool iso, GrB_Index nvec, bool jumbled, const GrB_Descriptor desc); +extern GrB_Info GxB_Matrix_import_HyperCSR(GrB_Matrix *A, GrB_Type type, GrB_Index nrows, GrB_Index ncols, GrB_Index **Ap, GrB_Index **Ah, GrB_Index **Aj, void **Ax, GrB_Index Ap_size, GrB_Index Ah_size, GrB_Index Aj_size, GrB_Index Ax_size, bool iso, GrB_Index nvec, bool jumbled, const GrB_Descriptor desc); +extern GrB_Info GxB_Matrix_isStoredElement(const GrB_Matrix A, GrB_Index i, GrB_Index j); +extern GrB_Info GxB_Matrix_iso(bool *iso, const GrB_Matrix A); +extern GrB_Info GxB_Matrix_memoryUsage(size_t *size, const GrB_Matrix A); +extern GrB_Info GxB_Matrix_pack_BitmapC(GrB_Matrix A, int8_t **Ab, void **Ax, GrB_Index Ab_size, GrB_Index Ax_size, bool iso, GrB_Index nvals, const GrB_Descriptor desc); +extern GrB_Info GxB_Matrix_pack_BitmapR(GrB_Matrix A, int8_t **Ab, void **Ax, GrB_Index Ab_size, GrB_Index Ax_size, bool iso, GrB_Index nvals, const GrB_Descriptor desc); +extern GrB_Info GxB_Matrix_pack_CSC(GrB_Matrix A, GrB_Index **Ap, GrB_Index **Ai, void **Ax, GrB_Index Ap_size, GrB_Index Ai_size, GrB_Index Ax_size, bool iso, bool jumbled, const GrB_Descriptor desc); +extern GrB_Info GxB_Matrix_pack_CSR(GrB_Matrix A, GrB_Index **Ap, GrB_Index **Aj, void **Ax, GrB_Index Ap_size, GrB_Index Aj_size, GrB_Index Ax_size, bool iso, bool jumbled, const GrB_Descriptor desc); +extern GrB_Info GxB_Matrix_pack_FullC(GrB_Matrix A, void **Ax, GrB_Index Ax_size, bool iso, const GrB_Descriptor desc); +extern GrB_Info GxB_Matrix_pack_FullR(GrB_Matrix A, void **Ax, GrB_Index Ax_size, bool iso, const GrB_Descriptor desc); +extern GrB_Info GxB_Matrix_pack_HyperCSC(GrB_Matrix A, GrB_Index **Ap, GrB_Index **Ah, GrB_Index **Ai, void **Ax, GrB_Index Ap_size, GrB_Index Ah_size, GrB_Index Ai_size, GrB_Index Ax_size, bool iso, GrB_Index nvec, bool jumbled, const GrB_Descriptor desc); +extern GrB_Info GxB_Matrix_pack_HyperCSR(GrB_Matrix A, GrB_Index **Ap, GrB_Index **Ah, GrB_Index **Aj, void **Ax, GrB_Index Ap_size, GrB_Index Ah_size, GrB_Index Aj_size, GrB_Index Ax_size, bool iso, GrB_Index nvec, bool jumbled, const GrB_Descriptor desc); +extern GrB_Info GxB_Matrix_reduce_FC32(GxB_FC32_t *c, const GrB_BinaryOp accum, const GrB_Monoid monoid, const GrB_Matrix A, const GrB_Descriptor desc); +extern GrB_Info GxB_Matrix_reduce_FC64(GxB_FC64_t *c, const GrB_BinaryOp accum, const GrB_Monoid monoid, const GrB_Matrix A, const GrB_Descriptor desc); +extern GrB_Info GxB_Matrix_reshape(GrB_Matrix C, bool by_col, GrB_Index nrows_new, GrB_Index ncols_new, const GrB_Descriptor desc); +extern GrB_Info GxB_Matrix_reshapeDup(GrB_Matrix *C, GrB_Matrix A, bool by_col, GrB_Index nrows_new, GrB_Index ncols_new, const GrB_Descriptor desc); +extern GrB_Info GxB_Matrix_select(GrB_Matrix C, const GrB_Matrix Mask, const GrB_BinaryOp accum, const GxB_SelectOp op, const GrB_Matrix A, const GrB_Scalar Thunk, const GrB_Descriptor desc); +extern GrB_Info GxB_Matrix_select_FC32(GrB_Matrix C, const GrB_Matrix Mask, const GrB_BinaryOp accum, const GrB_IndexUnaryOp op, const GrB_Matrix A, GxB_FC32_t y, const GrB_Descriptor desc); +extern GrB_Info GxB_Matrix_select_FC64(GrB_Matrix C, const GrB_Matrix Mask, const GrB_BinaryOp accum, const GrB_IndexUnaryOp op, const GrB_Matrix A, GxB_FC64_t y, const GrB_Descriptor desc); +extern GrB_Info GxB_Matrix_serialize(void **blob_handle, GrB_Index *blob_size_handle, GrB_Matrix A, const GrB_Descriptor desc); +extern GrB_Info GxB_Matrix_setElement_FC32(GrB_Matrix C, GxB_FC32_t x, GrB_Index i, GrB_Index j); +extern GrB_Info GxB_Matrix_setElement_FC64(GrB_Matrix C, GxB_FC64_t x, GrB_Index i, GrB_Index j); +extern GrB_Info GxB_Matrix_sort(GrB_Matrix C, GrB_Matrix P, GrB_BinaryOp op, GrB_Matrix A, const GrB_Descriptor desc); +extern GrB_Info GxB_Matrix_split(GrB_Matrix *Tiles, const GrB_Index m, const GrB_Index n, const GrB_Index *Tile_nrows, const GrB_Index *Tile_ncols, const GrB_Matrix A, const GrB_Descriptor desc); +extern GrB_Info GxB_Matrix_subassign(GrB_Matrix C, const GrB_Matrix Mask, const GrB_BinaryOp accum, const GrB_Matrix A, const GrB_Index *I, GrB_Index ni, const GrB_Index *J, GrB_Index nj, const GrB_Descriptor desc); +extern GrB_Info GxB_Matrix_subassign_BOOL(GrB_Matrix C, const GrB_Matrix Mask, const GrB_BinaryOp accum, bool x, const GrB_Index *I, GrB_Index ni, const GrB_Index *J, GrB_Index nj, const GrB_Descriptor desc); +extern GrB_Info GxB_Matrix_subassign_FC32(GrB_Matrix C, const GrB_Matrix Mask, const GrB_BinaryOp accum, GxB_FC32_t x, const GrB_Index *I, GrB_Index ni, const GrB_Index *J, GrB_Index nj, const GrB_Descriptor desc); +extern GrB_Info GxB_Matrix_subassign_FC64(GrB_Matrix C, const GrB_Matrix Mask, const GrB_BinaryOp accum, GxB_FC64_t x, const GrB_Index *I, GrB_Index ni, const GrB_Index *J, GrB_Index nj, const GrB_Descriptor desc); +extern GrB_Info GxB_Matrix_subassign_FP32(GrB_Matrix C, const GrB_Matrix Mask, const GrB_BinaryOp accum, float x, const GrB_Index *I, GrB_Index ni, const GrB_Index *J, GrB_Index nj, const GrB_Descriptor desc); +extern GrB_Info GxB_Matrix_subassign_FP64(GrB_Matrix C, const GrB_Matrix Mask, const GrB_BinaryOp accum, double x, const GrB_Index *I, GrB_Index ni, const GrB_Index *J, GrB_Index nj, const GrB_Descriptor desc); +extern GrB_Info GxB_Matrix_subassign_INT8(GrB_Matrix C, const GrB_Matrix Mask, const GrB_BinaryOp accum, int8_t x, const GrB_Index *I, GrB_Index ni, const GrB_Index *J, GrB_Index nj, const GrB_Descriptor desc); +extern GrB_Info GxB_Matrix_subassign_INT16(GrB_Matrix C, const GrB_Matrix Mask, const GrB_BinaryOp accum, int16_t x, const GrB_Index *I, GrB_Index ni, const GrB_Index *J, GrB_Index nj, const GrB_Descriptor desc); +extern GrB_Info GxB_Matrix_subassign_INT32(GrB_Matrix C, const GrB_Matrix Mask, const GrB_BinaryOp accum, int32_t x, const GrB_Index *I, GrB_Index ni, const GrB_Index *J, GrB_Index nj, const GrB_Descriptor desc); +extern GrB_Info GxB_Matrix_subassign_INT64(GrB_Matrix C, const GrB_Matrix Mask, const GrB_BinaryOp accum, int64_t x, const GrB_Index *I, GrB_Index ni, const GrB_Index *J, GrB_Index nj, const GrB_Descriptor desc); +extern GrB_Info GxB_Matrix_subassign_Scalar(GrB_Matrix C, const GrB_Matrix Mask, const GrB_BinaryOp accum, GrB_Scalar x, const GrB_Index *I, GrB_Index ni, const GrB_Index *J, GrB_Index nj, const GrB_Descriptor desc); +extern GrB_Info GxB_Matrix_subassign_UDT(GrB_Matrix C, const GrB_Matrix Mask, const GrB_BinaryOp accum, void *x, const GrB_Index *I, GrB_Index ni, const GrB_Index *J, GrB_Index nj, const GrB_Descriptor desc); +extern GrB_Info GxB_Matrix_subassign_UINT8(GrB_Matrix C, const GrB_Matrix Mask, const GrB_BinaryOp accum, uint8_t x, const GrB_Index *I, GrB_Index ni, const GrB_Index *J, GrB_Index nj, const GrB_Descriptor desc); +extern GrB_Info GxB_Matrix_subassign_UINT16(GrB_Matrix C, const GrB_Matrix Mask, const GrB_BinaryOp accum, uint16_t x, const GrB_Index *I, GrB_Index ni, const GrB_Index *J, GrB_Index nj, const GrB_Descriptor desc); +extern GrB_Info GxB_Matrix_subassign_UINT32(GrB_Matrix C, const GrB_Matrix Mask, const GrB_BinaryOp accum, uint32_t x, const GrB_Index *I, GrB_Index ni, const GrB_Index *J, GrB_Index nj, const GrB_Descriptor desc); +extern GrB_Info GxB_Matrix_subassign_UINT64(GrB_Matrix C, const GrB_Matrix Mask, const GrB_BinaryOp accum, uint64_t x, const GrB_Index *I, GrB_Index ni, const GrB_Index *J, GrB_Index nj, const GrB_Descriptor desc); +extern GrB_Info GxB_Matrix_type(GrB_Type *type, const GrB_Matrix A); +extern GrB_Info GxB_Matrix_type_name(char *type_name, const GrB_Matrix A); +extern GrB_Info GxB_Matrix_unpack_BitmapC(GrB_Matrix A, int8_t **Ab, void **Ax, GrB_Index *Ab_size, GrB_Index *Ax_size, bool *iso, GrB_Index *nvals, const GrB_Descriptor desc); +extern GrB_Info GxB_Matrix_unpack_BitmapR(GrB_Matrix A, int8_t **Ab, void **Ax, GrB_Index *Ab_size, GrB_Index *Ax_size, bool *iso, GrB_Index *nvals, const GrB_Descriptor desc); +extern GrB_Info GxB_Matrix_unpack_CSC(GrB_Matrix A, GrB_Index **Ap, GrB_Index **Ai, void **Ax, GrB_Index *Ap_size, GrB_Index *Ai_size, GrB_Index *Ax_size, bool *iso, bool *jumbled, const GrB_Descriptor desc); +extern GrB_Info GxB_Matrix_unpack_CSR(GrB_Matrix A, GrB_Index **Ap, GrB_Index **Aj, void **Ax, GrB_Index *Ap_size, GrB_Index *Aj_size, GrB_Index *Ax_size, bool *iso, bool *jumbled, const GrB_Descriptor desc); +extern GrB_Info GxB_Matrix_unpack_FullC(GrB_Matrix A, void **Ax, GrB_Index *Ax_size, bool *iso, const GrB_Descriptor desc); +extern GrB_Info GxB_Matrix_unpack_FullR(GrB_Matrix A, void **Ax, GrB_Index *Ax_size, bool *iso, const GrB_Descriptor desc); +extern GrB_Info GxB_Matrix_unpack_HyperCSC(GrB_Matrix A, GrB_Index **Ap, GrB_Index **Ah, GrB_Index **Ai, void **Ax, GrB_Index *Ap_size, GrB_Index *Ah_size, GrB_Index *Ai_size, GrB_Index *Ax_size, bool *iso, GrB_Index *nvec, bool *jumbled, const GrB_Descriptor desc); +extern GrB_Info GxB_Matrix_unpack_HyperCSR(GrB_Matrix A, GrB_Index **Ap, GrB_Index **Ah, GrB_Index **Aj, void **Ax, GrB_Index *Ap_size, GrB_Index *Ah_size, GrB_Index *Aj_size, GrB_Index *Ax_size, bool *iso, GrB_Index *nvec, bool *jumbled, const GrB_Descriptor desc); +extern GrB_Info GxB_Row_subassign(GrB_Matrix C, const GrB_Vector mask, const GrB_BinaryOp accum, const GrB_Vector u, GrB_Index i, const GrB_Index *J, GrB_Index nj, const GrB_Descriptor desc); +extern GrB_Info GxB_Vector_diag(GrB_Vector v, const GrB_Matrix A, int64_t k, const GrB_Descriptor desc); +extern GrB_Info GxB_colIterator_attach(GxB_Iterator iterator, GrB_Matrix A, GrB_Descriptor desc); +extern GrB_Info GxB_pack_HyperHash(GrB_Matrix A, GrB_Matrix *Y, const GrB_Descriptor desc); +extern GrB_Info GxB_rowIterator_attach(GxB_Iterator iterator, GrB_Matrix A, GrB_Descriptor desc); +extern GrB_Info GxB_unpack_HyperHash(GrB_Matrix A, GrB_Matrix *Y, const GrB_Descriptor desc); + +/* monoid */ +extern GrB_Info GxB_Monoid_fprint(GrB_Monoid monoid, const char *name, GxB_Print_Level pr, FILE *f); +extern GrB_Info GxB_Monoid_identity(void *identity, GrB_Monoid monoid); +extern GrB_Info GxB_Monoid_new_FC32(GrB_Monoid *monoid, GrB_BinaryOp op, GxB_FC32_t identity); +extern GrB_Info GxB_Monoid_new_FC64(GrB_Monoid *monoid, GrB_BinaryOp op, GxB_FC64_t identity); +extern GrB_Info GxB_Monoid_operator(GrB_BinaryOp *op, GrB_Monoid monoid); +extern GrB_Info GxB_Monoid_terminal(bool *has_terminal, void *terminal, GrB_Monoid monoid); +extern GrB_Info GxB_Monoid_terminal_new_BOOL(GrB_Monoid *monoid, GrB_BinaryOp op, bool identity, bool terminal); +extern GrB_Info GxB_Monoid_terminal_new_FC32(GrB_Monoid *monoid, GrB_BinaryOp op, GxB_FC32_t identity, GxB_FC32_t terminal); +extern GrB_Info GxB_Monoid_terminal_new_FC64(GrB_Monoid *monoid, GrB_BinaryOp op, GxB_FC64_t identity, GxB_FC64_t terminal); +extern GrB_Info GxB_Monoid_terminal_new_FP32(GrB_Monoid *monoid, GrB_BinaryOp op, float identity, float terminal); +extern GrB_Info GxB_Monoid_terminal_new_FP64(GrB_Monoid *monoid, GrB_BinaryOp op, double identity, double terminal); +extern GrB_Info GxB_Monoid_terminal_new_INT8(GrB_Monoid *monoid, GrB_BinaryOp op, int8_t identity, int8_t terminal); +extern GrB_Info GxB_Monoid_terminal_new_INT16(GrB_Monoid *monoid, GrB_BinaryOp op, int16_t identity, int16_t terminal); +extern GrB_Info GxB_Monoid_terminal_new_INT32(GrB_Monoid *monoid, GrB_BinaryOp op, int32_t identity, int32_t terminal); +extern GrB_Info GxB_Monoid_terminal_new_INT64(GrB_Monoid *monoid, GrB_BinaryOp op, int64_t identity, int64_t terminal); +extern GrB_Info GxB_Monoid_terminal_new_UDT(GrB_Monoid *monoid, GrB_BinaryOp op, void *identity, void *terminal); +extern GrB_Info GxB_Monoid_terminal_new_UINT8(GrB_Monoid *monoid, GrB_BinaryOp op, uint8_t identity, uint8_t terminal); +extern GrB_Info GxB_Monoid_terminal_new_UINT16(GrB_Monoid *monoid, GrB_BinaryOp op, uint16_t identity, uint16_t terminal); +extern GrB_Info GxB_Monoid_terminal_new_UINT32(GrB_Monoid *monoid, GrB_BinaryOp op, uint32_t identity, uint32_t terminal); +extern GrB_Info GxB_Monoid_terminal_new_UINT64(GrB_Monoid *monoid, GrB_BinaryOp op, uint64_t identity, uint64_t terminal); + +/* scalar */ +extern GrB_Info GxB_Scalar_clear(GrB_Scalar s); +extern GrB_Info GxB_Scalar_dup(GrB_Scalar *s, const GrB_Scalar t); +extern GrB_Info GxB_Scalar_error(const char **error, const GrB_Scalar s); +extern GrB_Info GxB_Scalar_extractElement_BOOL(bool *x, const GrB_Scalar s); +extern GrB_Info GxB_Scalar_extractElement_FC32(GxB_FC32_t *x, const GrB_Scalar s); +extern GrB_Info GxB_Scalar_extractElement_FC64(GxB_FC64_t *x, const GrB_Scalar s); +extern GrB_Info GxB_Scalar_extractElement_FP32(float *x, const GrB_Scalar s); +extern GrB_Info GxB_Scalar_extractElement_FP64(double *x, const GrB_Scalar s); +extern GrB_Info GxB_Scalar_extractElement_INT8(int8_t *x, const GrB_Scalar s); +extern GrB_Info GxB_Scalar_extractElement_INT16(int16_t *x, const GrB_Scalar s); +extern GrB_Info GxB_Scalar_extractElement_INT32(int32_t *x, const GrB_Scalar s); +extern GrB_Info GxB_Scalar_extractElement_INT64(int64_t *x, const GrB_Scalar s); +extern GrB_Info GxB_Scalar_extractElement_UDT(void *x, const GrB_Scalar s); +extern GrB_Info GxB_Scalar_extractElement_UINT8(uint8_t *x, const GrB_Scalar s); +extern GrB_Info GxB_Scalar_extractElement_UINT16(uint16_t *x, const GrB_Scalar s); +extern GrB_Info GxB_Scalar_extractElement_UINT32(uint32_t *x, const GrB_Scalar s); +extern GrB_Info GxB_Scalar_extractElement_UINT64(uint64_t *x, const GrB_Scalar s); +extern GrB_Info GxB_Scalar_fprint(GrB_Scalar s, const char *name, GxB_Print_Level pr, FILE *f); +extern GrB_Info GxB_Scalar_free(GrB_Scalar *s); +extern GrB_Info GxB_Scalar_memoryUsage(size_t *size, const GrB_Scalar s); +extern GrB_Info GxB_Scalar_new(GrB_Scalar *s, GrB_Type type); +extern GrB_Info GxB_Scalar_nvals(GrB_Index *nvals, const GrB_Scalar s); +extern GrB_Info GxB_Scalar_setElement_BOOL(GrB_Scalar s, bool x); +extern GrB_Info GxB_Scalar_setElement_FC32(GrB_Scalar s, GxB_FC32_t x); +extern GrB_Info GxB_Scalar_setElement_FC64(GrB_Scalar s, GxB_FC64_t x); +extern GrB_Info GxB_Scalar_setElement_FP32(GrB_Scalar s, float x); +extern GrB_Info GxB_Scalar_setElement_FP64(GrB_Scalar s, double x); +extern GrB_Info GxB_Scalar_setElement_INT8(GrB_Scalar s, int8_t x); +extern GrB_Info GxB_Scalar_setElement_INT16(GrB_Scalar s, int16_t x); +extern GrB_Info GxB_Scalar_setElement_INT32(GrB_Scalar s, int32_t x); +extern GrB_Info GxB_Scalar_setElement_INT64(GrB_Scalar s, int64_t x); +extern GrB_Info GxB_Scalar_setElement_UDT(GrB_Scalar s, void *x); +extern GrB_Info GxB_Scalar_setElement_UINT8(GrB_Scalar s, uint8_t x); +extern GrB_Info GxB_Scalar_setElement_UINT16(GrB_Scalar s, uint16_t x); +extern GrB_Info GxB_Scalar_setElement_UINT32(GrB_Scalar s, uint32_t x); +extern GrB_Info GxB_Scalar_setElement_UINT64(GrB_Scalar s, uint64_t x); +extern GrB_Info GxB_Scalar_type(GrB_Type *type, const GrB_Scalar s); +extern GrB_Info GxB_Scalar_type_name(char *type_name, const GrB_Scalar s); +extern GrB_Info GxB_Scalar_wait(GrB_Scalar *s); + +/* selectop */ +extern GrB_Info GxB_SelectOp_error(const char **error, const GxB_SelectOp op); +extern GrB_Info GxB_SelectOp_fprint(GxB_SelectOp selectop, const char *name, GxB_Print_Level pr, FILE *f); +extern GrB_Info GxB_SelectOp_free(GxB_SelectOp *selectop); +extern GrB_Info GxB_SelectOp_new(GxB_SelectOp *selectop, GxB_select_function function, GrB_Type xtype, GrB_Type ttype); +extern GrB_Info GxB_SelectOp_ttype(GrB_Type *ttype, GxB_SelectOp selectop); +extern GrB_Info GxB_SelectOp_wait(GxB_SelectOp op, GrB_WaitMode waitmode); +extern GrB_Info GxB_SelectOp_xtype(GrB_Type *xtype, GxB_SelectOp selectop); + +/* semiring */ +extern GrB_Info GxB_Semiring_add(GrB_Monoid *add, GrB_Semiring semiring); +extern GrB_Info GxB_Semiring_fprint(GrB_Semiring semiring, const char *name, GxB_Print_Level pr, FILE *f); +extern GrB_Info GxB_Semiring_multiply(GrB_BinaryOp *multiply, GrB_Semiring semiring); + +/* type */ +extern GrB_Info GxB_Type_fprint(GrB_Type type, const char *name, GxB_Print_Level pr, FILE *f); +extern GrB_Info GxB_Type_from_name(GrB_Type *type, const char *type_name); +extern GrB_Info GxB_Type_name(char *type_name, const GrB_Type type); +extern GrB_Info GxB_Type_new(GrB_Type *type, size_t sizeof_ctype, const char *type_name, const char *type_defn); +extern GrB_Info GxB_Type_size(size_t *size, const GrB_Type type); + +/* unary */ +extern GrB_Info GxB_UnaryOp_fprint(GrB_UnaryOp unaryop, const char *name, GxB_Print_Level pr, FILE *f); +extern GrB_Info GxB_UnaryOp_new(GrB_UnaryOp *unaryop, GxB_unary_function function, GrB_Type ztype, GrB_Type xtype, const char *unop_name, const char *unop_defn); +extern GrB_Info GxB_UnaryOp_xtype(GrB_Type *xtype, GrB_UnaryOp unaryop); +extern GrB_Info GxB_UnaryOp_xtype_name(char *type_name, const GrB_UnaryOp unaryop); +extern GrB_Info GxB_UnaryOp_ztype(GrB_Type *ztype, GrB_UnaryOp unaryop); +extern GrB_Info GxB_UnaryOp_ztype_name(char *type_name, const GrB_UnaryOp unaryop); + +/* vector */ +extern GrB_Info GxB_Vector_Iterator_attach(GxB_Iterator iterator, GrB_Vector v, GrB_Descriptor desc); +extern GrB_Info GxB_Vector_Option_get(GrB_Vector A, GxB_Option_Field field, char *); +extern GrB_Info GxB_Vector_Option_set(GrB_Vector A, GxB_Option_Field field, char *); +extern GrB_Info GxB_Vector_apply_BinaryOp1st(GrB_Vector w, const GrB_Vector mask, const GrB_BinaryOp accum, const GrB_BinaryOp op, const GrB_Scalar x, const GrB_Vector u, const GrB_Descriptor desc); +extern GrB_Info GxB_Vector_apply_BinaryOp1st_FC32(GrB_Vector w, const GrB_Vector mask, const GrB_BinaryOp accum, const GrB_BinaryOp op, GxB_FC32_t x, const GrB_Vector u, const GrB_Descriptor desc); +extern GrB_Info GxB_Vector_apply_BinaryOp1st_FC64(GrB_Vector w, const GrB_Vector mask, const GrB_BinaryOp accum, const GrB_BinaryOp op, GxB_FC64_t x, const GrB_Vector u, const GrB_Descriptor desc); +extern GrB_Info GxB_Vector_apply_BinaryOp2nd(GrB_Vector w, const GrB_Vector mask, const GrB_BinaryOp accum, const GrB_BinaryOp op, const GrB_Vector u, const GrB_Scalar y, const GrB_Descriptor desc); +extern GrB_Info GxB_Vector_apply_BinaryOp2nd_FC32(GrB_Vector w, const GrB_Vector mask, const GrB_BinaryOp accum, const GrB_BinaryOp op, const GrB_Vector u, GxB_FC32_t y, const GrB_Descriptor desc); +extern GrB_Info GxB_Vector_apply_BinaryOp2nd_FC64(GrB_Vector w, const GrB_Vector mask, const GrB_BinaryOp accum, const GrB_BinaryOp op, const GrB_Vector u, GxB_FC64_t y, const GrB_Descriptor desc); +extern GrB_Info GxB_Vector_apply_IndexOp_FC32(GrB_Vector w, const GrB_Vector mask, const GrB_BinaryOp accum, const GrB_IndexUnaryOp op, const GrB_Vector u, GxB_FC32_t y, const GrB_Descriptor desc); +extern GrB_Info GxB_Vector_apply_IndexOp_FC64(GrB_Vector w, const GrB_Vector mask, const GrB_BinaryOp accum, const GrB_IndexUnaryOp op, const GrB_Vector u, GxB_FC64_t y, const GrB_Descriptor desc); +extern GrB_Info GxB_Vector_assign_FC32(GrB_Vector w, const GrB_Vector mask, const GrB_BinaryOp accum, GxB_FC32_t x, const GrB_Index *I, GrB_Index ni, const GrB_Descriptor desc); +extern GrB_Info GxB_Vector_assign_FC64(GrB_Vector w, const GrB_Vector mask, const GrB_BinaryOp accum, GxB_FC64_t x, const GrB_Index *I, GrB_Index ni, const GrB_Descriptor desc); +extern GrB_Info GxB_Vector_build_FC32(GrB_Vector w, const GrB_Index *I, const GxB_FC32_t *X, GrB_Index nvals, const GrB_BinaryOp dup); +extern GrB_Info GxB_Vector_build_FC64(GrB_Vector w, const GrB_Index *I, const GxB_FC64_t *X, GrB_Index nvals, const GrB_BinaryOp dup); +extern GrB_Info GxB_Vector_build_Scalar(GrB_Vector w, const GrB_Index *I, GrB_Scalar scalar, GrB_Index nvals); +extern GrB_Info GxB_Vector_deserialize(GrB_Vector *w, GrB_Type type, const void *blob, GrB_Index blob_size, const GrB_Descriptor desc); +extern GrB_Info GxB_Vector_eWiseUnion(GrB_Vector w, const GrB_Vector mask, const GrB_BinaryOp accum, const GrB_BinaryOp add, const GrB_Vector u, const GrB_Scalar alpha, const GrB_Vector v, const GrB_Scalar beta, const GrB_Descriptor desc); +extern GrB_Info GxB_Vector_export_Bitmap(GrB_Vector *v, GrB_Type *type, GrB_Index *n, int8_t **vb, void **vx, GrB_Index *vb_size, GrB_Index *vx_size, bool *iso, GrB_Index *nvals, const GrB_Descriptor desc); +extern GrB_Info GxB_Vector_export_CSC(GrB_Vector *v, GrB_Type *type, GrB_Index *n, GrB_Index **vi, void **vx, GrB_Index *vi_size, GrB_Index *vx_size, bool *iso, GrB_Index *nvals, bool *jumbled, const GrB_Descriptor desc); +extern GrB_Info GxB_Vector_export_Full(GrB_Vector *v, GrB_Type *type, GrB_Index *n, void **vx, GrB_Index *vx_size, bool *iso, const GrB_Descriptor desc); +extern GrB_Info GxB_Vector_extractElement_FC32(GxB_FC32_t *x, const GrB_Vector v, GrB_Index i); +extern GrB_Info GxB_Vector_extractElement_FC64(GxB_FC64_t *x, const GrB_Vector v, GrB_Index i); +extern GrB_Info GxB_Vector_extractTuples_FC32(GrB_Index *I, GxB_FC32_t *X, GrB_Index *nvals, const GrB_Vector v); +extern GrB_Info GxB_Vector_extractTuples_FC64(GrB_Index *I, GxB_FC64_t *X, GrB_Index *nvals, const GrB_Vector v); +extern GrB_Info GxB_Vector_fprint(GrB_Vector v, const char *name, GxB_Print_Level pr, FILE *f); +extern GrB_Info GxB_Vector_import_Bitmap(GrB_Vector *v, GrB_Type type, GrB_Index n, int8_t **vb, void **vx, GrB_Index vb_size, GrB_Index vx_size, bool iso, GrB_Index nvals, const GrB_Descriptor desc); +extern GrB_Info GxB_Vector_import_CSC(GrB_Vector *v, GrB_Type type, GrB_Index n, GrB_Index **vi, void **vx, GrB_Index vi_size, GrB_Index vx_size, bool iso, GrB_Index nvals, bool jumbled, const GrB_Descriptor desc); +extern GrB_Info GxB_Vector_import_Full(GrB_Vector *v, GrB_Type type, GrB_Index n, void **vx, GrB_Index vx_size, bool iso, const GrB_Descriptor desc); +extern GrB_Info GxB_Vector_isStoredElement(const GrB_Vector v, GrB_Index i); +extern GrB_Info GxB_Vector_iso(bool *iso, const GrB_Vector v); +extern GrB_Info GxB_Vector_memoryUsage(size_t *size, const GrB_Vector v); +extern GrB_Info GxB_Vector_pack_Bitmap(GrB_Vector v, int8_t **vb, void **vx, GrB_Index vb_size, GrB_Index vx_size, bool iso, GrB_Index nvals, const GrB_Descriptor desc); +extern GrB_Info GxB_Vector_pack_CSC(GrB_Vector v, GrB_Index **vi, void **vx, GrB_Index vi_size, GrB_Index vx_size, bool iso, GrB_Index nvals, bool jumbled, const GrB_Descriptor desc); +extern GrB_Info GxB_Vector_pack_Full(GrB_Vector v, void **vx, GrB_Index vx_size, bool iso, const GrB_Descriptor desc); +extern GrB_Info GxB_Vector_reduce_FC32(GxB_FC32_t *c, const GrB_BinaryOp accum, const GrB_Monoid monoid, const GrB_Vector u, const GrB_Descriptor desc); +extern GrB_Info GxB_Vector_reduce_FC64(GxB_FC64_t *c, const GrB_BinaryOp accum, const GrB_Monoid monoid, const GrB_Vector u, const GrB_Descriptor desc); +extern GrB_Info GxB_Vector_select(GrB_Vector w, const GrB_Vector mask, const GrB_BinaryOp accum, const GxB_SelectOp op, const GrB_Vector u, const GrB_Scalar Thunk, const GrB_Descriptor desc); +extern GrB_Info GxB_Vector_select_FC32(GrB_Vector w, const GrB_Vector mask, const GrB_BinaryOp accum, const GrB_IndexUnaryOp op, const GrB_Vector u, GxB_FC32_t y, const GrB_Descriptor desc); +extern GrB_Info GxB_Vector_select_FC64(GrB_Vector w, const GrB_Vector mask, const GrB_BinaryOp accum, const GrB_IndexUnaryOp op, const GrB_Vector u, GxB_FC64_t y, const GrB_Descriptor desc); +extern GrB_Info GxB_Vector_serialize(void **blob_handle, GrB_Index *blob_size_handle, GrB_Vector u, const GrB_Descriptor desc); +extern GrB_Info GxB_Vector_setElement_FC32(GrB_Vector w, GxB_FC32_t x, GrB_Index i); +extern GrB_Info GxB_Vector_setElement_FC64(GrB_Vector w, GxB_FC64_t x, GrB_Index i); +extern GrB_Info GxB_Vector_sort(GrB_Vector w, GrB_Vector p, GrB_BinaryOp op, GrB_Vector u, const GrB_Descriptor desc); +extern GrB_Info GxB_Vector_subassign(GrB_Vector w, const GrB_Vector mask, const GrB_BinaryOp accum, const GrB_Vector u, const GrB_Index *I, GrB_Index ni, const GrB_Descriptor desc); +extern GrB_Info GxB_Vector_subassign_BOOL(GrB_Vector w, const GrB_Vector mask, const GrB_BinaryOp accum, bool x, const GrB_Index *I, GrB_Index ni, const GrB_Descriptor desc); +extern GrB_Info GxB_Vector_subassign_FC32(GrB_Vector w, const GrB_Vector mask, const GrB_BinaryOp accum, GxB_FC32_t x, const GrB_Index *I, GrB_Index ni, const GrB_Descriptor desc); +extern GrB_Info GxB_Vector_subassign_FC64(GrB_Vector w, const GrB_Vector mask, const GrB_BinaryOp accum, GxB_FC64_t x, const GrB_Index *I, GrB_Index ni, const GrB_Descriptor desc); +extern GrB_Info GxB_Vector_subassign_FP32(GrB_Vector w, const GrB_Vector mask, const GrB_BinaryOp accum, float x, const GrB_Index *I, GrB_Index ni, const GrB_Descriptor desc); +extern GrB_Info GxB_Vector_subassign_FP64(GrB_Vector w, const GrB_Vector mask, const GrB_BinaryOp accum, double x, const GrB_Index *I, GrB_Index ni, const GrB_Descriptor desc); +extern GrB_Info GxB_Vector_subassign_INT8(GrB_Vector w, const GrB_Vector mask, const GrB_BinaryOp accum, int8_t x, const GrB_Index *I, GrB_Index ni, const GrB_Descriptor desc); +extern GrB_Info GxB_Vector_subassign_INT16(GrB_Vector w, const GrB_Vector mask, const GrB_BinaryOp accum, int16_t x, const GrB_Index *I, GrB_Index ni, const GrB_Descriptor desc); +extern GrB_Info GxB_Vector_subassign_INT32(GrB_Vector w, const GrB_Vector mask, const GrB_BinaryOp accum, int32_t x, const GrB_Index *I, GrB_Index ni, const GrB_Descriptor desc); +extern GrB_Info GxB_Vector_subassign_INT64(GrB_Vector w, const GrB_Vector mask, const GrB_BinaryOp accum, int64_t x, const GrB_Index *I, GrB_Index ni, const GrB_Descriptor desc); +extern GrB_Info GxB_Vector_subassign_Scalar(GrB_Vector w, const GrB_Vector mask, const GrB_BinaryOp accum, GrB_Scalar x, const GrB_Index *I, GrB_Index ni, const GrB_Descriptor desc); +extern GrB_Info GxB_Vector_subassign_UDT(GrB_Vector w, const GrB_Vector mask, const GrB_BinaryOp accum, void *x, const GrB_Index *I, GrB_Index ni, const GrB_Descriptor desc); +extern GrB_Info GxB_Vector_subassign_UINT8(GrB_Vector w, const GrB_Vector mask, const GrB_BinaryOp accum, uint8_t x, const GrB_Index *I, GrB_Index ni, const GrB_Descriptor desc); +extern GrB_Info GxB_Vector_subassign_UINT16(GrB_Vector w, const GrB_Vector mask, const GrB_BinaryOp accum, uint16_t x, const GrB_Index *I, GrB_Index ni, const GrB_Descriptor desc); +extern GrB_Info GxB_Vector_subassign_UINT32(GrB_Vector w, const GrB_Vector mask, const GrB_BinaryOp accum, uint32_t x, const GrB_Index *I, GrB_Index ni, const GrB_Descriptor desc); +extern GrB_Info GxB_Vector_subassign_UINT64(GrB_Vector w, const GrB_Vector mask, const GrB_BinaryOp accum, uint64_t x, const GrB_Index *I, GrB_Index ni, const GrB_Descriptor desc); +extern GrB_Info GxB_Vector_type(GrB_Type *type, const GrB_Vector v); +extern GrB_Info GxB_Vector_type_name(char *type_name, const GrB_Vector v); +extern GrB_Info GxB_Vector_unpack_Bitmap(GrB_Vector v, int8_t **vb, void **vx, GrB_Index *vb_size, GrB_Index *vx_size, bool *iso, GrB_Index *nvals, const GrB_Descriptor desc); +extern GrB_Info GxB_Vector_unpack_CSC(GrB_Vector v, GrB_Index **vi, void **vx, GrB_Index *vi_size, GrB_Index *vx_size, bool *iso, GrB_Index *nvals, bool *jumbled, const GrB_Descriptor desc); +extern GrB_Info GxB_Vector_unpack_Full(GrB_Vector v, void **vx, GrB_Index *vx_size, bool *iso, const GrB_Descriptor desc); + +/* int DEFINES */ +#define GRB_SUBVERSION ... +#define GRB_VERSION ... +#define GrB_INDEX_MAX ... +#define GxB_ANY_SPARSITY ... +#define GxB_AUTO_SPARSITY ... +#define GxB_BACKWARDS ... +#define GxB_BEGIN ... +#define GxB_BITMAP ... +#define GxB_CHUNK ... +#define GxB_COMPRESSION_DEFAULT ... +#define GxB_COMPRESSION_INTEL ... +#define GxB_COMPRESSION_LZ4 ... +#define GxB_COMPRESSION_LZ4HC ... +#define GxB_COMPRESSION_NONE ... +#define GxB_COMPRESSION_ZSTD ... +#define GxB_END ... +#define GxB_FAST_IMPORT ... +#define GxB_FULL ... +#define GxB_GPU_CHUNK ... +#define GxB_GPU_CONTROL ... +#define GxB_HYPERSPARSE ... +#define GxB_IMPLEMENTATION ... +#define GxB_IMPLEMENTATION_MAJOR ... +#define GxB_IMPLEMENTATION_MINOR ... +#define GxB_IMPLEMENTATION_SUB ... +#define GxB_INC ... +#define GxB_INDEX_MAX ... +#define GxB_MAX_NAME_LEN ... +#define GxB_NBITMAP_SWITCH ... +#define GxB_NTHREADS ... +#define GxB_RANGE ... +#define GxB_SPARSE ... +#define GxB_SPEC_MAJOR ... +#define GxB_SPEC_MINOR ... +#define GxB_SPEC_SUB ... +#define GxB_SPEC_VERSION ... +#define GxB_STDC_VERSION ... +#define GxB_STRIDE ... + +/* char* DEFINES */ +extern char *GxB_IMPLEMENTATION_ABOUT_STR; +extern char *GxB_IMPLEMENTATION_DATE_STR; +extern char *GxB_IMPLEMENTATION_LICENSE_STR; +extern char *GxB_IMPLEMENTATION_NAME_STR; +extern char *GxB_SPEC_ABOUT_STR; +extern char *GxB_SPEC_DATE_STR; \ No newline at end of file