//------------------------------------------------------------------------------ // GB_op_name_get: get the user_name of any operator //------------------------------------------------------------------------------ // SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ // Three operators are left unnamed: identity_udt, 1st_udt, and 2nd_udt. // These are created by GB_unop_identity, GB_reduce_to_vector, and // GB_binop_second, and do not exist outside GraphBLAS. The user application // cannot pass them to GrB_get. #include "GB_get_set.h" const char *GB_op_name_get (GB_Operator op) { GB_Opcode opcode = op->opcode ; GB_Type_code xcode = (op->xtype == NULL) ? 0 : op->xtype->code ; GB_Type_code zcode = (op->ztype == NULL) ? 0 : op->ztype->code ; switch (opcode) { case GB_NOP_code : return ("GxB_IGNORE_DUP") ; //---------------------------------------------------------------------- // unary operators //---------------------------------------------------------------------- case GB_ONE_unop_code : // z = 1 switch (xcode) { case GB_BOOL_code : return ("GxB_ONE_BOOL" ) ; case GB_INT8_code : return ("GxB_ONE_INT8" ) ; case GB_INT16_code : return ("GxB_ONE_INT16" ) ; case GB_INT32_code : return ("GxB_ONE_INT32" ) ; case GB_INT64_code : return ("GxB_ONE_INT64" ) ; case GB_UINT8_code : return ("GxB_ONE_UINT8" ) ; case GB_UINT16_code : return ("GxB_ONE_UINT16") ; case GB_UINT32_code : return ("GxB_ONE_UINT32") ; case GB_UINT64_code : return ("GxB_ONE_UINT64") ; case GB_FP32_code : return ("GxB_ONE_FP32" ) ; case GB_FP64_code : return ("GxB_ONE_FP64" ) ; case GB_FC32_code : return ("GxB_ONE_FC32" ) ; case GB_FC64_code : return ("GxB_ONE_FC64" ) ; default :; } break ; case GB_IDENTITY_unop_code : // z = x switch (xcode) { case GB_BOOL_code : return ("GrB_IDENTITY_BOOL" ) ; case GB_INT8_code : return ("GrB_IDENTITY_INT8" ) ; case GB_INT16_code : return ("GrB_IDENTITY_INT16" ) ; case GB_INT32_code : return ("GrB_IDENTITY_INT32" ) ; case GB_INT64_code : return ("GrB_IDENTITY_INT64" ) ; case GB_UINT8_code : return ("GrB_IDENTITY_UINT8" ) ; case GB_UINT16_code : return ("GrB_IDENTITY_UINT16") ; case GB_UINT32_code : return ("GrB_IDENTITY_UINT32") ; case GB_UINT64_code : return ("GrB_IDENTITY_UINT64") ; case GB_FP32_code : return ("GrB_IDENTITY_FP32" ) ; case GB_FP64_code : return ("GrB_IDENTITY_FP64" ) ; case GB_FC32_code : return ("GxB_IDENTITY_FC32" ) ; case GB_FC64_code : return ("GxB_IDENTITY_FC64" ) ; // see GB_unop_identity: // case GB_UDT_code : // return ("identity_udt") ; default :; } break ; case GB_AINV_unop_code : // z = -x switch (xcode) { case GB_BOOL_code : return ("GrB_AINV_BOOL" ) ; case GB_INT8_code : return ("GrB_AINV_INT8" ) ; case GB_INT16_code : return ("GrB_AINV_INT16" ) ; case GB_INT32_code : return ("GrB_AINV_INT32" ) ; case GB_INT64_code : return ("GrB_AINV_INT64" ) ; case GB_UINT8_code : return ("GrB_AINV_UINT8" ) ; case GB_UINT16_code : return ("GrB_AINV_UINT16") ; case GB_UINT32_code : return ("GrB_AINV_UINT32") ; case GB_UINT64_code : return ("GrB_AINV_UINT64") ; case GB_FP32_code : return ("GrB_AINV_FP32" ) ; case GB_FP64_code : return ("GrB_AINV_FP64" ) ; case GB_FC32_code : return ("GxB_AINV_FC32" ) ; case GB_FC64_code : return ("GxB_AINV_FC64" ) ; default :; } break ; case GB_ABS_unop_code : // z = abs(x) switch (xcode) { case GB_BOOL_code : return ("GrB_ABS_BOOL" ) ; case GB_INT8_code : return ("GrB_ABS_INT8" ) ; case GB_INT16_code : return ("GrB_ABS_INT16" ) ; case GB_INT32_code : return ("GrB_ABS_INT32" ) ; case GB_INT64_code : return ("GrB_ABS_INT64" ) ; case GB_UINT8_code : return ("GrB_ABS_UINT8" ) ; case GB_UINT16_code : return ("GrB_ABS_UINT16") ; case GB_UINT32_code : return ("GrB_ABS_UINT32") ; case GB_UINT64_code : return ("GrB_ABS_UINT64") ; case GB_FP32_code : return ("GrB_ABS_FP32" ) ; case GB_FP64_code : return ("GrB_ABS_FP64" ) ; case GB_FC32_code : return ("GxB_ABS_FC32" ) ; case GB_FC64_code : return ("GxB_ABS_FC64" ) ; default :; } break ; case GB_MINV_unop_code : // z = 1/x switch (xcode) { case GB_BOOL_code : return ("GrB_MINV_BOOL" ) ; case GB_INT8_code : return ("GrB_MINV_INT8" ) ; case GB_INT16_code : return ("GrB_MINV_INT16" ) ; case GB_INT32_code : return ("GrB_MINV_INT32" ) ; case GB_INT64_code : return ("GrB_MINV_INT64" ) ; case GB_UINT8_code : return ("GrB_MINV_UINT8" ) ; case GB_UINT16_code : return ("GrB_MINV_UINT16") ; case GB_UINT32_code : return ("GrB_MINV_UINT32") ; case GB_UINT64_code : return ("GrB_MINV_UINT64") ; case GB_FP32_code : return ("GrB_MINV_FP32" ) ; case GB_FP64_code : return ("GrB_MINV_FP64" ) ; case GB_FC32_code : return ("GxB_MINV_FC32" ) ; case GB_FC64_code : return ("GxB_MINV_FC64" ) ; default :; } break ; case GB_LNOT_unop_code : // z = !x switch (xcode) { case GB_BOOL_code : return ("GrB_LNOT" ) ; case GB_INT8_code : return ("GxB_LNOT_INT8" ) ; case GB_INT16_code : return ("GxB_LNOT_INT16" ) ; case GB_INT32_code : return ("GxB_LNOT_INT32" ) ; case GB_INT64_code : return ("GxB_LNOT_INT64" ) ; case GB_UINT8_code : return ("GxB_LNOT_UINT8" ) ; case GB_UINT16_code : return ("GxB_LNOT_UINT16") ; case GB_UINT32_code : return ("GxB_LNOT_UINT32") ; case GB_UINT64_code : return ("GxB_LNOT_UINT64") ; case GB_FP32_code : return ("GxB_LNOT_FP32" ) ; case GB_FP64_code : return ("GxB_LNOT_FP64" ) ; default :; } break ; case GB_BNOT_unop_code : // z = ~x switch (xcode) { case GB_INT8_code : return ("GrB_BNOT_INT8" ) ; case GB_INT16_code : return ("GrB_BNOT_INT16" ) ; case GB_INT32_code : return ("GrB_BNOT_INT32" ) ; case GB_INT64_code : return ("GrB_BNOT_INT64" ) ; case GB_UINT8_code : return ("GrB_BNOT_UINT8" ) ; case GB_UINT16_code : return ("GrB_BNOT_UINT16") ; case GB_UINT32_code : return ("GrB_BNOT_UINT32") ; case GB_UINT64_code : return ("GrB_BNOT_UINT64") ; default :; } break ; case GB_SQRT_unop_code : // z = sqrt (x) switch (xcode) { case GB_FP32_code : return ("GxB_SQRT_FP32") ; case GB_FP64_code : return ("GxB_SQRT_FP64") ; case GB_FC32_code : return ("GxB_SQRT_FC32") ; case GB_FC64_code : return ("GxB_SQRT_FC64") ; default :; } break ; case GB_LOG_unop_code : // z = log (x) switch (xcode) { case GB_FP32_code : return ("GxB_LOG_FP32") ; case GB_FP64_code : return ("GxB_LOG_FP64") ; case GB_FC32_code : return ("GxB_LOG_FC32") ; case GB_FC64_code : return ("GxB_LOG_FC64") ; default :; } break ; case GB_EXP_unop_code : // z = exp (x) switch (xcode) { case GB_FP32_code : return ("GxB_EXP_FP32") ; case GB_FP64_code : return ("GxB_EXP_FP64") ; case GB_FC32_code : return ("GxB_EXP_FC32") ; case GB_FC64_code : return ("GxB_EXP_FC64") ; default :; } break ; case GB_SIN_unop_code : // z = sin (x) switch (xcode) { case GB_FP32_code : return ("GxB_SIN_FP32") ; case GB_FP64_code : return ("GxB_SIN_FP64") ; case GB_FC32_code : return ("GxB_SIN_FC32") ; case GB_FC64_code : return ("GxB_SIN_FC64") ; default :; } break ; case GB_COS_unop_code : // z = cos (x) switch (xcode) { case GB_FP32_code : return ("GxB_COS_FP32") ; case GB_FP64_code : return ("GxB_COS_FP64") ; case GB_FC32_code : return ("GxB_COS_FC32") ; case GB_FC64_code : return ("GxB_COS_FC64") ; default :; } break ; case GB_TAN_unop_code : // z = tan (x) switch (xcode) { case GB_FP32_code : return ("GxB_TAN_FP32") ; case GB_FP64_code : return ("GxB_TAN_FP64") ; case GB_FC32_code : return ("GxB_TAN_FC32") ; case GB_FC64_code : return ("GxB_TAN_FC64") ; default :; } break ; case GB_ASIN_unop_code : // z = asin (x) switch (xcode) { case GB_FP32_code : return ("GxB_ASIN_FP32") ; case GB_FP64_code : return ("GxB_ASIN_FP64") ; case GB_FC32_code : return ("GxB_ASIN_FC32") ; case GB_FC64_code : return ("GxB_ASIN_FC64") ; default :; } break ; case GB_ACOS_unop_code : // z = acos (x) switch (xcode) { case GB_FP32_code : return ("GxB_ACOS_FP32") ; case GB_FP64_code : return ("GxB_ACOS_FP64") ; case GB_FC32_code : return ("GxB_ACOS_FC32") ; case GB_FC64_code : return ("GxB_ACOS_FC64") ; default :; } break ; case GB_ATAN_unop_code : // z = atan (x) switch (xcode) { case GB_FP32_code : return ("GxB_ATAN_FP32") ; case GB_FP64_code : return ("GxB_ATAN_FP64") ; case GB_FC32_code : return ("GxB_ATAN_FC32") ; case GB_FC64_code : return ("GxB_ATAN_FC64") ; default :; } break ; case GB_SINH_unop_code : // z = sinh (x) switch (xcode) { case GB_FP32_code : return ("GxB_SINH_FP32") ; case GB_FP64_code : return ("GxB_SINH_FP64") ; case GB_FC32_code : return ("GxB_SINH_FC32") ; case GB_FC64_code : return ("GxB_SINH_FC64") ; default :; } break ; case GB_COSH_unop_code : // z = cosh (x) switch (xcode) { case GB_FP32_code : return ("GxB_COSH_FP32") ; case GB_FP64_code : return ("GxB_COSH_FP64") ; case GB_FC32_code : return ("GxB_COSH_FC32") ; case GB_FC64_code : return ("GxB_COSH_FC64") ; default :; } break ; case GB_TANH_unop_code : // z = tanh (x) switch (xcode) { case GB_FP32_code : return ("GxB_TANH_FP32") ; case GB_FP64_code : return ("GxB_TANH_FP64") ; case GB_FC32_code : return ("GxB_TANH_FC32") ; case GB_FC64_code : return ("GxB_TANH_FC64") ; default :; } break ; case GB_ASINH_unop_code : // z = asinh (x) switch (xcode) { case GB_FP32_code : return ("GxB_ASINH_FP32") ; case GB_FP64_code : return ("GxB_ASINH_FP64") ; case GB_FC32_code : return ("GxB_ASINH_FC32") ; case GB_FC64_code : return ("GxB_ASINH_FC64") ; default :; } break ; case GB_ACOSH_unop_code : // z = acosh (x) switch (xcode) { case GB_FP32_code : return ("GxB_ACOSH_FP32") ; case GB_FP64_code : return ("GxB_ACOSH_FP64") ; case GB_FC32_code : return ("GxB_ACOSH_FC32") ; case GB_FC64_code : return ("GxB_ACOSH_FC64") ; default :; } break ; case GB_ATANH_unop_code : // z = atanh (x) switch (xcode) { case GB_FP32_code : return ("GxB_ATANH_FP32") ; case GB_FP64_code : return ("GxB_ATANH_FP64") ; case GB_FC32_code : return ("GxB_ATANH_FC32") ; case GB_FC64_code : return ("GxB_ATANH_FC64") ; default :; } break ; case GB_SIGNUM_unop_code : // z = signum (x) switch (xcode) { case GB_FP32_code : return ("GxB_SIGNUM_FP32") ; case GB_FP64_code : return ("GxB_SIGNUM_FP64") ; case GB_FC32_code : return ("GxB_SIGNUM_FC32") ; case GB_FC64_code : return ("GxB_SIGNUM_FC64") ; default :; } break ; case GB_CEIL_unop_code : // z = ceil (x) switch (xcode) { case GB_FP32_code : return ("GxB_CEIL_FP32") ; case GB_FP64_code : return ("GxB_CEIL_FP64") ; case GB_FC32_code : return ("GxB_CEIL_FC32") ; case GB_FC64_code : return ("GxB_CEIL_FC64") ; default :; } break ; case GB_FLOOR_unop_code : // z = floor (x) switch (xcode) { case GB_FP32_code : return ("GxB_FLOOR_FP32") ; case GB_FP64_code : return ("GxB_FLOOR_FP64") ; case GB_FC32_code : return ("GxB_FLOOR_FC32") ; case GB_FC64_code : return ("GxB_FLOOR_FC64") ; default :; } break ; case GB_ROUND_unop_code : // z = round (x) switch (xcode) { case GB_FP32_code : return ("GxB_ROUND_FP32") ; case GB_FP64_code : return ("GxB_ROUND_FP64") ; case GB_FC32_code : return ("GxB_ROUND_FC32") ; case GB_FC64_code : return ("GxB_ROUND_FC64") ; default :; } break ; case GB_TRUNC_unop_code : // z = trunc (x) switch (xcode) { case GB_FP32_code : return ("GxB_TRUNC_FP32") ; case GB_FP64_code : return ("GxB_TRUNC_FP64") ; case GB_FC32_code : return ("GxB_TRUNC_FC32") ; case GB_FC64_code : return ("GxB_TRUNC_FC64") ; default :; } break ; case GB_EXP2_unop_code : // z = exp2 (x) switch (xcode) { case GB_FP32_code : return ("GxB_EXP2_FP32") ; case GB_FP64_code : return ("GxB_EXP2_FP64") ; case GB_FC32_code : return ("GxB_EXP2_FC32") ; case GB_FC64_code : return ("GxB_EXP2_FC64") ; default :; } break ; case GB_EXPM1_unop_code : // z = expm1 (x) switch (xcode) { case GB_FP32_code : return ("GxB_EXPM1_FP32") ; case GB_FP64_code : return ("GxB_EXPM1_FP64") ; case GB_FC32_code : return ("GxB_EXPM1_FC32") ; case GB_FC64_code : return ("GxB_EXPM1_FC64") ; default :; } break ; case GB_LOG10_unop_code : // z = log10 (x) switch (xcode) { case GB_FP32_code : return ("GxB_LOG10_FP32") ; case GB_FP64_code : return ("GxB_LOG10_FP64") ; case GB_FC32_code : return ("GxB_LOG10_FC32") ; case GB_FC64_code : return ("GxB_LOG10_FC64") ; default :; } break ; case GB_LOG1P_unop_code : // z = log1P (x) switch (xcode) { case GB_FP32_code : return ("GxB_LOG1P_FP32") ; case GB_FP64_code : return ("GxB_LOG1P_FP64") ; case GB_FC32_code : return ("GxB_LOG1P_FC32") ; case GB_FC64_code : return ("GxB_LOG1P_FC64") ; default :; } break ; case GB_LOG2_unop_code : // z = log2 (x) switch (xcode) { case GB_FP32_code : return ("GxB_LOG2_FP32") ; case GB_FP64_code : return ("GxB_LOG2_FP64") ; case GB_FC32_code : return ("GxB_LOG2_FC32") ; case GB_FC64_code : return ("GxB_LOG2_FC64") ; default :; } break ; case GB_LGAMMA_unop_code : // z = lgamma (x) switch (xcode) { case GB_FP32_code : return ("GxB_LGAMMA_FP32") ; case GB_FP64_code : return ("GxB_LGAMMA_FP64") ; default :; } break ; case GB_TGAMMA_unop_code : // z = tgamma (x) switch (xcode) { case GB_FP32_code : return ("GxB_TGAMMA_FP32") ; case GB_FP64_code : return ("GxB_TGAMMA_FP64") ; default :; } break ; case GB_ERF_unop_code : // z = erf (x) switch (xcode) { case GB_FP32_code : return ("GxB_ERF_FP32") ; case GB_FP64_code : return ("GxB_ERF_FP64") ; default :; } break ; case GB_ERFC_unop_code : // z = erfc (x) switch (xcode) { case GB_FP32_code : return ("GxB_ERFC_FP32") ; case GB_FP64_code : return ("GxB_ERFC_FP64") ; default :; } break ; case GB_CBRT_unop_code : // z = cbrt (x) switch (xcode) { case GB_FP32_code : return ("GxB_CBRT_FP32") ; case GB_FP64_code : return ("GxB_CBRT_FP64") ; default :; } break ; case GB_FREXPX_unop_code : // z = frexpx (x) switch (xcode) { case GB_FP32_code : return ("GxB_FREXPX_FP32") ; case GB_FP64_code : return ("GxB_FREXPX_FP64") ; default :; } break ; case GB_FREXPE_unop_code : // z = frexpe (x) switch (xcode) { case GB_FP32_code : return ("GxB_FREXPE_FP32") ; case GB_FP64_code : return ("GxB_FREXPE_FP64") ; default :; } break ; case GB_CONJ_unop_code : // z = conj (x) switch (xcode) { case GB_FC32_code : return ("GxB_CONJ_FC32") ; case GB_FC64_code : return ("GxB_CONJ_FC64") ; default :; } break ; case GB_CREAL_unop_code : // z = creal (x) switch (xcode) { case GB_FC32_code : return ("GxB_CREAL_FC32") ; case GB_FC64_code : return ("GxB_CREAL_FC64") ; default :; } break ; case GB_CIMAG_unop_code : // z = cimag (x) switch (xcode) { case GB_FC32_code : return ("GxB_CIMAG_FC32") ; case GB_FC64_code : return ("GxB_CIMAG_FC64") ; default :; } break ; case GB_CARG_unop_code : // z = carg (x) switch (xcode) { case GB_FC32_code : return ("GxB_CARG_FC32") ; case GB_FC64_code : return ("GxB_CARG_FC64") ; default :; } break ; case GB_ISINF_unop_code : // z = isinf (x) switch (xcode) { case GB_FP32_code : return ("GxB_ISINF_FP32") ; case GB_FP64_code : return ("GxB_ISINF_FP64") ; case GB_FC32_code : return ("GxB_ISINF_FC32") ; case GB_FC64_code : return ("GxB_ISINF_FC64") ; default :; } break ; case GB_ISNAN_unop_code : // z = isnan (x) switch (xcode) { case GB_FP32_code : return ("GxB_ISNAN_FP32") ; case GB_FP64_code : return ("GxB_ISNAN_FP64") ; case GB_FC32_code : return ("GxB_ISNAN_FC32") ; case GB_FC64_code : return ("GxB_ISNAN_FC64") ; default :; } break ; case GB_ISFINITE_unop_code : // z = isfinite (x) switch (xcode) { case GB_FP32_code : return ("GxB_ISFINITE_FP32") ; case GB_FP64_code : return ("GxB_ISFINITE_FP64") ; case GB_FC32_code : return ("GxB_ISFINITE_FC32") ; case GB_FC64_code : return ("GxB_ISFINITE_FC64") ; default :; } break ; case GB_POSITIONI_unop_code : // z = position_i(A(i,j)) == i switch (zcode) { case GB_INT32_code : return ("GxB_POSITIONI_INT32") ; case GB_INT64_code : return ("GxB_POSITIONI_INT64") ; default :; } break ; case GB_POSITIONI1_unop_code : // z = position_i1(A(i,j)) == i+1 switch (zcode) { case GB_INT32_code : return ("GxB_POSITIONI1_INT32") ; case GB_INT64_code : return ("GxB_POSITIONI1_INT64") ; default :; } break ; case GB_POSITIONJ_unop_code : // z = position_j(A(i,j)) == j switch (zcode) { case GB_INT32_code : return ("GxB_POSITIONJ_INT32") ; case GB_INT64_code : return ("GxB_POSITIONJ_INT64") ; default :; } break ; case GB_POSITIONJ1_unop_code : // z = position_j1(A(i,j)) == j+1 switch (zcode) { case GB_INT32_code : return ("GxB_POSITIONJ1_INT32") ; case GB_INT64_code : return ("GxB_POSITIONJ1_INT64") ; default :; } break ; //---------------------------------------------------------------------- // index_unary operators //---------------------------------------------------------------------- case GB_ROWINDEX_idxunop_code : // (i+thunk): row index - thunk switch (zcode) { case GB_INT32_code : return ("GrB_ROWINDEX_INT32") ; case GB_INT64_code : return ("GrB_ROWINDEX_INT64") ; default :; } break ; case GB_COLINDEX_idxunop_code : // (j+thunk): col index - thunk switch (zcode) { case GB_INT32_code : return ("GrB_COLINDEX_INT32") ; case GB_INT64_code : return ("GrB_COLINDEX_INT64") ; default :; } break ; case GB_DIAGINDEX_idxunop_code : // (j-(i+thunk)): diag index+thunk switch (zcode) { case GB_INT32_code : return ("GrB_DIAGINDEX_INT32") ; case GB_INT64_code : return ("GrB_DIAGINDEX_INT64") ; default :; } break ; case GB_FLIPDIAGINDEX_idxunop_code : // (i-(j+thunk)), internal use only switch (zcode) { case GB_INT32_code : return ("GxB_FLIPDIAGINDEX_INT32") ; case GB_INT64_code : return ("GxB_FLIPDIAGINDEX_INT64") ; default :; } break ; case GB_TRIL_idxunop_code : return ("GrB_TRIL" ) ; case GB_TRIU_idxunop_code : return ("GrB_TRIU" ) ; case GB_DIAG_idxunop_code : return ("GrB_DIAG" ) ; case GB_OFFDIAG_idxunop_code : return ("GrB_OFFDIAG") ; case GB_COLLE_idxunop_code : return ("GrB_COLLE" ) ; case GB_COLGT_idxunop_code : return ("GrB_COLGT" ) ; case GB_ROWLE_idxunop_code : return ("GrB_ROWLE" ) ; case GB_ROWGT_idxunop_code : return ("GrB_ROWGT" ) ; case GB_NONZOMBIE_idxunop_code : return ("GxB_NONZOMBIE") ; case GB_VALUENE_idxunop_code : // (aij != thunk) switch (xcode) { case GB_BOOL_code : return ("GrB_VALUENE_BOOL" ) ; case GB_INT8_code : return ("GrB_VALUENE_INT8" ) ; case GB_INT16_code : return ("GrB_VALUENE_INT16" ) ; case GB_INT32_code : return ("GrB_VALUENE_INT32" ) ; case GB_INT64_code : return ("GrB_VALUENE_INT64" ) ; case GB_UINT8_code : return ("GrB_VALUENE_UINT8" ) ; case GB_UINT16_code : return ("GrB_VALUENE_UINT16") ; case GB_UINT32_code : return ("GrB_VALUENE_UINT32") ; case GB_UINT64_code : return ("GrB_VALUENE_UINT64") ; case GB_FP32_code : return ("GrB_VALUENE_FP32" ) ; case GB_FP64_code : return ("GrB_VALUENE_FP64" ) ; case GB_FC32_code : return ("GxB_VALUENE_FC32" ) ; case GB_FC64_code : return ("GxB_VALUENE_FC64" ) ; default :; } break ; case GB_VALUEEQ_idxunop_code : // (aij == thunk) switch (xcode) { case GB_BOOL_code : return ("GrB_VALUEEQ_BOOL" ) ; case GB_INT8_code : return ("GrB_VALUEEQ_INT8" ) ; case GB_INT16_code : return ("GrB_VALUEEQ_INT16" ) ; case GB_INT32_code : return ("GrB_VALUEEQ_INT32" ) ; case GB_INT64_code : return ("GrB_VALUEEQ_INT64" ) ; case GB_UINT8_code : return ("GrB_VALUEEQ_UINT8" ) ; case GB_UINT16_code : return ("GrB_VALUEEQ_UINT16") ; case GB_UINT32_code : return ("GrB_VALUEEQ_UINT32") ; case GB_UINT64_code : return ("GrB_VALUEEQ_UINT64") ; case GB_FP32_code : return ("GrB_VALUEEQ_FP32" ) ; case GB_FP64_code : return ("GrB_VALUEEQ_FP64" ) ; case GB_FC32_code : return ("GxB_VALUEEQ_FC32" ) ; case GB_FC64_code : return ("GxB_VALUEEQ_FC64" ) ; default :; } break ; case GB_VALUEGT_idxunop_code : // (aij > thunk) switch (xcode) { case GB_BOOL_code : return ("GrB_VALUEGT_BOOL" ) ; case GB_INT8_code : return ("GrB_VALUEGT_INT8" ) ; case GB_INT16_code : return ("GrB_VALUEGT_INT16" ) ; case GB_INT32_code : return ("GrB_VALUEGT_INT32" ) ; case GB_INT64_code : return ("GrB_VALUEGT_INT64" ) ; case GB_UINT8_code : return ("GrB_VALUEGT_UINT8" ) ; case GB_UINT16_code : return ("GrB_VALUEGT_UINT16") ; case GB_UINT32_code : return ("GrB_VALUEGT_UINT32") ; case GB_UINT64_code : return ("GrB_VALUEGT_UINT64") ; case GB_FP32_code : return ("GrB_VALUEGT_FP32" ) ; case GB_FP64_code : return ("GrB_VALUEGT_FP64" ) ; default :; } break ; case GB_VALUEGE_idxunop_code : // (aij >= thunk) switch (xcode) { case GB_BOOL_code : return ("GrB_VALUEGE_BOOL" ) ; case GB_INT8_code : return ("GrB_VALUEGE_INT8" ) ; case GB_INT16_code : return ("GrB_VALUEGE_INT16" ) ; case GB_INT32_code : return ("GrB_VALUEGE_INT32" ) ; case GB_INT64_code : return ("GrB_VALUEGE_INT64" ) ; case GB_UINT8_code : return ("GrB_VALUEGE_UINT8" ) ; case GB_UINT16_code : return ("GrB_VALUEGE_UINT16") ; case GB_UINT32_code : return ("GrB_VALUEGE_UINT32") ; case GB_UINT64_code : return ("GrB_VALUEGE_UINT64") ; case GB_FP32_code : return ("GrB_VALUEGE_FP32" ) ; case GB_FP64_code : return ("GrB_VALUEGE_FP64" ) ; default :; } break ; case GB_VALUELT_idxunop_code : // (aij < thunk) switch (xcode) { case GB_BOOL_code : return ("GrB_VALUELT_BOOL" ) ; case GB_INT8_code : return ("GrB_VALUELT_INT8" ) ; case GB_INT16_code : return ("GrB_VALUELT_INT16" ) ; case GB_INT32_code : return ("GrB_VALUELT_INT32" ) ; case GB_INT64_code : return ("GrB_VALUELT_INT64" ) ; case GB_UINT8_code : return ("GrB_VALUELT_UINT8" ) ; case GB_UINT16_code : return ("GrB_VALUELT_UINT16") ; case GB_UINT32_code : return ("GrB_VALUELT_UINT32") ; case GB_UINT64_code : return ("GrB_VALUELT_UINT64") ; case GB_FP32_code : return ("GrB_VALUELT_FP32" ) ; case GB_FP64_code : return ("GrB_VALUELT_FP64" ) ; default :; } break ; case GB_VALUELE_idxunop_code : // (aij <= thunk) switch (xcode) { case GB_BOOL_code : return ("GrB_VALUELE_BOOL" ) ; case GB_INT8_code : return ("GrB_VALUELE_INT8" ) ; case GB_INT16_code : return ("GrB_VALUELE_INT16" ) ; case GB_INT32_code : return ("GrB_VALUELE_INT32" ) ; case GB_INT64_code : return ("GrB_VALUELE_INT64" ) ; case GB_UINT8_code : return ("GrB_VALUELE_UINT8" ) ; case GB_UINT16_code : return ("GrB_VALUELE_UINT16") ; case GB_UINT32_code : return ("GrB_VALUELE_UINT32") ; case GB_UINT64_code : return ("GrB_VALUELE_UINT64") ; case GB_FP32_code : return ("GrB_VALUELE_FP32" ) ; case GB_FP64_code : return ("GrB_VALUELE_FP64" ) ; default :; } break ; //---------------------------------------------------------------------- // binary operators //---------------------------------------------------------------------- case GB_FIRST_binop_code : // z = x switch (xcode) { case GB_BOOL_code : return ("GrB_FIRST_BOOL" ) ; case GB_INT8_code : return ("GrB_FIRST_INT8" ) ; case GB_INT16_code : return ("GrB_FIRST_INT16" ) ; case GB_INT32_code : return ("GrB_FIRST_INT32" ) ; case GB_INT64_code : return ("GrB_FIRST_INT64" ) ; case GB_UINT8_code : return ("GrB_FIRST_UINT8" ) ; case GB_UINT16_code : return ("GrB_FIRST_UINT16") ; case GB_UINT32_code : return ("GrB_FIRST_UINT32") ; case GB_UINT64_code : return ("GrB_FIRST_UINT64") ; case GB_FP32_code : return ("GrB_FIRST_FP32" ) ; case GB_FP64_code : return ("GrB_FIRST_FP64" ) ; case GB_FC32_code : return ("GxB_FIRST_FC32" ) ; case GB_FC64_code : return ("GxB_FIRST_FC64" ) ; // see GB_reduce_to_vector: // case GB_UDT_code : // return ("1st_udt") ; default :; } break ; case GB_SECOND_binop_code : // z = y switch (xcode) { case GB_BOOL_code : return ("GrB_SECOND_BOOL" ) ; case GB_INT8_code : return ("GrB_SECOND_INT8" ) ; case GB_INT16_code : return ("GrB_SECOND_INT16" ) ; case GB_INT32_code : return ("GrB_SECOND_INT32" ) ; case GB_INT64_code : return ("GrB_SECOND_INT64" ) ; case GB_UINT8_code : return ("GrB_SECOND_UINT8" ) ; case GB_UINT16_code : return ("GrB_SECOND_UINT16") ; case GB_UINT32_code : return ("GrB_SECOND_UINT32") ; case GB_UINT64_code : return ("GrB_SECOND_UINT64") ; case GB_FP32_code : return ("GrB_SECOND_FP32" ) ; case GB_FP64_code : return ("GrB_SECOND_FP64" ) ; case GB_FC32_code : return ("GxB_SECOND_FC32" ) ; case GB_FC64_code : return ("GxB_SECOND_FC64" ) ; // see GB_binop_second: // case GB_UDT_code : // return ("2nd_udt") ; default :; } break ; case GB_ANY_binop_code : // z = x or y switch (xcode) { case GB_BOOL_code : return ("GxB_ANY_BOOL" ) ; case GB_INT8_code : return ("GxB_ANY_INT8" ) ; case GB_INT16_code : return ("GxB_ANY_INT16" ) ; case GB_INT32_code : return ("GxB_ANY_INT32" ) ; case GB_INT64_code : return ("GxB_ANY_INT64" ) ; case GB_UINT8_code : return ("GxB_ANY_UINT8" ) ; case GB_UINT16_code : return ("GxB_ANY_UINT16") ; case GB_UINT32_code : return ("GxB_ANY_UINT32") ; case GB_UINT64_code : return ("GxB_ANY_UINT64") ; case GB_FP32_code : return ("GxB_ANY_FP32" ) ; case GB_FP64_code : return ("GxB_ANY_FP64" ) ; case GB_FC32_code : return ("GxB_ANY_FC32" ) ; case GB_FC64_code : return ("GxB_ANY_FC64" ) ; default :; } break ; case GB_PAIR_binop_code : // z = 1 switch (xcode) { case GB_BOOL_code : return ("GrB_ONEB_BOOL" ) ; case GB_INT8_code : return ("GrB_ONEB_INT8" ) ; case GB_INT16_code : return ("GrB_ONEB_INT16" ) ; case GB_INT32_code : return ("GrB_ONEB_INT32" ) ; case GB_INT64_code : return ("GrB_ONEB_INT64" ) ; case GB_UINT8_code : return ("GrB_ONEB_UINT8" ) ; case GB_UINT16_code : return ("GrB_ONEB_UINT16") ; case GB_UINT32_code : return ("GrB_ONEB_UINT32") ; case GB_UINT64_code : return ("GrB_ONEB_UINT64") ; case GB_FP32_code : return ("GrB_ONEB_FP32" ) ; case GB_FP64_code : return ("GrB_ONEB_FP64" ) ; case GB_FC32_code : return ("GxB_ONEB_FC32" ) ; case GB_FC64_code : return ("GxB_ONEB_FC64" ) ; default :; } break ; case GB_MIN_binop_code : // z = min(x,y) switch (xcode) { case GB_BOOL_code : return ("GrB_MIN_BOOL" ) ; case GB_INT8_code : return ("GrB_MIN_INT8" ) ; case GB_INT16_code : return ("GrB_MIN_INT16" ) ; case GB_INT32_code : return ("GrB_MIN_INT32" ) ; case GB_INT64_code : return ("GrB_MIN_INT64" ) ; case GB_UINT8_code : return ("GrB_MIN_UINT8" ) ; case GB_UINT16_code : return ("GrB_MIN_UINT16") ; case GB_UINT32_code : return ("GrB_MIN_UINT32") ; case GB_UINT64_code : return ("GrB_MIN_UINT64") ; case GB_FP32_code : return ("GrB_MIN_FP32" ) ; case GB_FP64_code : return ("GrB_MIN_FP64" ) ; default :; } break ; case GB_MAX_binop_code : // z = max(x,y) switch (xcode) { case GB_BOOL_code : return ("GrB_MAX_BOOL" ) ; case GB_INT8_code : return ("GrB_MAX_INT8" ) ; case GB_INT16_code : return ("GrB_MAX_INT16" ) ; case GB_INT32_code : return ("GrB_MAX_INT32" ) ; case GB_INT64_code : return ("GrB_MAX_INT64" ) ; case GB_UINT8_code : return ("GrB_MAX_UINT8" ) ; case GB_UINT16_code : return ("GrB_MAX_UINT16") ; case GB_UINT32_code : return ("GrB_MAX_UINT32") ; case GB_UINT64_code : return ("GrB_MAX_UINT64") ; case GB_FP32_code : return ("GrB_MAX_FP32" ) ; case GB_FP64_code : return ("GrB_MAX_FP64" ) ; default :; } break ; case GB_PLUS_binop_code : // z = x + y switch (xcode) { case GB_BOOL_code : return ("GrB_PLUS_BOOL" ) ; case GB_INT8_code : return ("GrB_PLUS_INT8" ) ; case GB_INT16_code : return ("GrB_PLUS_INT16" ) ; case GB_INT32_code : return ("GrB_PLUS_INT32" ) ; case GB_INT64_code : return ("GrB_PLUS_INT64" ) ; case GB_UINT8_code : return ("GrB_PLUS_UINT8" ) ; case GB_UINT16_code : return ("GrB_PLUS_UINT16") ; case GB_UINT32_code : return ("GrB_PLUS_UINT32") ; case GB_UINT64_code : return ("GrB_PLUS_UINT64") ; case GB_FP32_code : return ("GrB_PLUS_FP32" ) ; case GB_FP64_code : return ("GrB_PLUS_FP64" ) ; case GB_FC32_code : return ("GxB_PLUS_FC32" ) ; case GB_FC64_code : return ("GxB_PLUS_FC64" ) ; default :; } break ; case GB_MINUS_binop_code : // z = x - y switch (xcode) { case GB_BOOL_code : return ("GrB_MINUS_BOOL" ) ; case GB_INT8_code : return ("GrB_MINUS_INT8" ) ; case GB_INT16_code : return ("GrB_MINUS_INT16" ) ; case GB_INT32_code : return ("GrB_MINUS_INT32" ) ; case GB_INT64_code : return ("GrB_MINUS_INT64" ) ; case GB_UINT8_code : return ("GrB_MINUS_UINT8" ) ; case GB_UINT16_code : return ("GrB_MINUS_UINT16") ; case GB_UINT32_code : return ("GrB_MINUS_UINT32") ; case GB_UINT64_code : return ("GrB_MINUS_UINT64") ; case GB_FP32_code : return ("GrB_MINUS_FP32" ) ; case GB_FP64_code : return ("GrB_MINUS_FP64" ) ; case GB_FC32_code : return ("GxB_MINUS_FC32" ) ; case GB_FC64_code : return ("GxB_MINUS_FC64" ) ; default :; } break ; case GB_RMINUS_binop_code : // z = y - x switch (xcode) { case GB_BOOL_code : return ("GxB_RMINUS_BOOL" ) ; case GB_INT8_code : return ("GxB_RMINUS_INT8" ) ; case GB_INT16_code : return ("GxB_RMINUS_INT16" ) ; case GB_INT32_code : return ("GxB_RMINUS_INT32" ) ; case GB_INT64_code : return ("GxB_RMINUS_INT64" ) ; case GB_UINT8_code : return ("GxB_RMINUS_UINT8" ) ; case GB_UINT16_code : return ("GxB_RMINUS_UINT16") ; case GB_UINT32_code : return ("GxB_RMINUS_UINT32") ; case GB_UINT64_code : return ("GxB_RMINUS_UINT64") ; case GB_FP32_code : return ("GxB_RMINUS_FP32" ) ; case GB_FP64_code : return ("GxB_RMINUS_FP64" ) ; case GB_FC32_code : return ("GxB_RMINUS_FC32" ) ; case GB_FC64_code : return ("GxB_RMINUS_FC64" ) ; default :; } break ; case GB_TIMES_binop_code : // z = x * y switch (xcode) { case GB_BOOL_code : return ("GrB_TIMES_BOOL" ) ; case GB_INT8_code : return ("GrB_TIMES_INT8" ) ; case GB_INT16_code : return ("GrB_TIMES_INT16" ) ; case GB_INT32_code : return ("GrB_TIMES_INT32" ) ; case GB_INT64_code : return ("GrB_TIMES_INT64" ) ; case GB_UINT8_code : return ("GrB_TIMES_UINT8" ) ; case GB_UINT16_code : return ("GrB_TIMES_UINT16") ; case GB_UINT32_code : return ("GrB_TIMES_UINT32") ; case GB_UINT64_code : return ("GrB_TIMES_UINT64") ; case GB_FP32_code : return ("GrB_TIMES_FP32" ) ; case GB_FP64_code : return ("GrB_TIMES_FP64" ) ; case GB_FC32_code : return ("GxB_TIMES_FC32" ) ; case GB_FC64_code : return ("GxB_TIMES_FC64" ) ; default :; } break ; case GB_DIV_binop_code : // z = x / y switch (xcode) { case GB_BOOL_code : return ("GrB_DIV_BOOL" ) ; case GB_INT8_code : return ("GrB_DIV_INT8" ) ; case GB_INT16_code : return ("GrB_DIV_INT16" ) ; case GB_INT32_code : return ("GrB_DIV_INT32" ) ; case GB_INT64_code : return ("GrB_DIV_INT64" ) ; case GB_UINT8_code : return ("GrB_DIV_UINT8" ) ; case GB_UINT16_code : return ("GrB_DIV_UINT16") ; case GB_UINT32_code : return ("GrB_DIV_UINT32") ; case GB_UINT64_code : return ("GrB_DIV_UINT64") ; case GB_FP32_code : return ("GrB_DIV_FP32" ) ; case GB_FP64_code : return ("GrB_DIV_FP64" ) ; case GB_FC32_code : return ("GxB_DIV_FC32" ) ; case GB_FC64_code : return ("GxB_DIV_FC64" ) ; default :; } break ; case GB_RDIV_binop_code : // z = y / x switch (xcode) { case GB_BOOL_code : return ("GxB_RDIV_BOOL" ) ; case GB_INT8_code : return ("GxB_RDIV_INT8" ) ; case GB_INT16_code : return ("GxB_RDIV_INT16" ) ; case GB_INT32_code : return ("GxB_RDIV_INT32" ) ; case GB_INT64_code : return ("GxB_RDIV_INT64" ) ; case GB_UINT8_code : return ("GxB_RDIV_UINT8" ) ; case GB_UINT16_code : return ("GxB_RDIV_UINT16") ; case GB_UINT32_code : return ("GxB_RDIV_UINT32") ; case GB_UINT64_code : return ("GxB_RDIV_UINT64") ; case GB_FP32_code : return ("GxB_RDIV_FP32" ) ; case GB_FP64_code : return ("GxB_RDIV_FP64" ) ; case GB_FC32_code : return ("GxB_RDIV_FC32" ) ; case GB_FC64_code : return ("GxB_RDIV_FC64" ) ; default :; } break ; case GB_POW_binop_code : // z = pow (x,y) switch (xcode) { case GB_BOOL_code : return ("GxB_POW_BOOL" ) ; case GB_INT8_code : return ("GxB_POW_INT8" ) ; case GB_INT16_code : return ("GxB_POW_INT16" ) ; case GB_INT32_code : return ("GxB_POW_INT32" ) ; case GB_INT64_code : return ("GxB_POW_INT64" ) ; case GB_UINT8_code : return ("GxB_POW_UINT8" ) ; case GB_UINT16_code : return ("GxB_POW_UINT16") ; case GB_UINT32_code : return ("GxB_POW_UINT32") ; case GB_UINT64_code : return ("GxB_POW_UINT64") ; case GB_FP32_code : return ("GxB_POW_FP32" ) ; case GB_FP64_code : return ("GxB_POW_FP64" ) ; case GB_FC32_code : return ("GxB_POW_FC32" ) ; case GB_FC64_code : return ("GxB_POW_FC64" ) ; default :; } break ; case GB_ISEQ_binop_code : // z = (x == y) switch (xcode) { case GB_BOOL_code : return ("GxB_ISEQ_BOOL" ) ; case GB_INT8_code : return ("GxB_ISEQ_INT8" ) ; case GB_INT16_code : return ("GxB_ISEQ_INT16" ) ; case GB_INT32_code : return ("GxB_ISEQ_INT32" ) ; case GB_INT64_code : return ("GxB_ISEQ_INT64" ) ; case GB_UINT8_code : return ("GxB_ISEQ_UINT8" ) ; case GB_UINT16_code : return ("GxB_ISEQ_UINT16") ; case GB_UINT32_code : return ("GxB_ISEQ_UINT32") ; case GB_UINT64_code : return ("GxB_ISEQ_UINT64") ; case GB_FP32_code : return ("GxB_ISEQ_FP32" ) ; case GB_FP64_code : return ("GxB_ISEQ_FP64" ) ; case GB_FC32_code : return ("GxB_ISEQ_FC32" ) ; case GB_FC64_code : return ("GxB_ISEQ_FC64" ) ; default :; } break ; case GB_ISNE_binop_code : // z = (x != y) switch (xcode) { case GB_BOOL_code : return ("GxB_ISNE_BOOL" ) ; case GB_INT8_code : return ("GxB_ISNE_INT8" ) ; case GB_INT16_code : return ("GxB_ISNE_INT16" ) ; case GB_INT32_code : return ("GxB_ISNE_INT32" ) ; case GB_INT64_code : return ("GxB_ISNE_INT64" ) ; case GB_UINT8_code : return ("GxB_ISNE_UINT8" ) ; case GB_UINT16_code : return ("GxB_ISNE_UINT16") ; case GB_UINT32_code : return ("GxB_ISNE_UINT32") ; case GB_UINT64_code : return ("GxB_ISNE_UINT64") ; case GB_FP32_code : return ("GxB_ISNE_FP32" ) ; case GB_FP64_code : return ("GxB_ISNE_FP64" ) ; case GB_FC32_code : return ("GxB_ISNE_FC32" ) ; case GB_FC64_code : return ("GxB_ISNE_FC64" ) ; default :; } break ; case GB_ISGT_binop_code : // z = (x > y) switch (xcode) { case GB_BOOL_code : return ("GxB_ISGT_BOOL" ) ; case GB_INT8_code : return ("GxB_ISGT_INT8" ) ; case GB_INT16_code : return ("GxB_ISGT_INT16" ) ; case GB_INT32_code : return ("GxB_ISGT_INT32" ) ; case GB_INT64_code : return ("GxB_ISGT_INT64" ) ; case GB_UINT8_code : return ("GxB_ISGT_UINT8" ) ; case GB_UINT16_code : return ("GxB_ISGT_UINT16") ; case GB_UINT32_code : return ("GxB_ISGT_UINT32") ; case GB_UINT64_code : return ("GxB_ISGT_UINT64") ; case GB_FP32_code : return ("GxB_ISGT_FP32" ) ; case GB_FP64_code : return ("GxB_ISGT_FP64" ) ; default :; } break ; case GB_ISLT_binop_code : // z = (x < y) switch (xcode) { case GB_BOOL_code : return ("GxB_ISLT_BOOL" ) ; case GB_INT8_code : return ("GxB_ISLT_INT8" ) ; case GB_INT16_code : return ("GxB_ISLT_INT16" ) ; case GB_INT32_code : return ("GxB_ISLT_INT32" ) ; case GB_INT64_code : return ("GxB_ISLT_INT64" ) ; case GB_UINT8_code : return ("GxB_ISLT_UINT8" ) ; case GB_UINT16_code : return ("GxB_ISLT_UINT16") ; case GB_UINT32_code : return ("GxB_ISLT_UINT32") ; case GB_UINT64_code : return ("GxB_ISLT_UINT64") ; case GB_FP32_code : return ("GxB_ISLT_FP32" ) ; case GB_FP64_code : return ("GxB_ISLT_FP64" ) ; default :; } break ; case GB_ISGE_binop_code : // z = (x >= y) switch (xcode) { case GB_BOOL_code : return ("GxB_ISGE_BOOL" ) ; case GB_INT8_code : return ("GxB_ISGE_INT8" ) ; case GB_INT16_code : return ("GxB_ISGE_INT16" ) ; case GB_INT32_code : return ("GxB_ISGE_INT32" ) ; case GB_INT64_code : return ("GxB_ISGE_INT64" ) ; case GB_UINT8_code : return ("GxB_ISGE_UINT8" ) ; case GB_UINT16_code : return ("GxB_ISGE_UINT16") ; case GB_UINT32_code : return ("GxB_ISGE_UINT32") ; case GB_UINT64_code : return ("GxB_ISGE_UINT64") ; case GB_FP32_code : return ("GxB_ISGE_FP32" ) ; case GB_FP64_code : return ("GxB_ISGE_FP64" ) ; default :; } break ; case GB_ISLE_binop_code : // z = (x <= y) switch (xcode) { case GB_BOOL_code : return ("GxB_ISLE_BOOL" ) ; case GB_INT8_code : return ("GxB_ISLE_INT8" ) ; case GB_INT16_code : return ("GxB_ISLE_INT16" ) ; case GB_INT32_code : return ("GxB_ISLE_INT32" ) ; case GB_INT64_code : return ("GxB_ISLE_INT64" ) ; case GB_UINT8_code : return ("GxB_ISLE_UINT8" ) ; case GB_UINT16_code : return ("GxB_ISLE_UINT16") ; case GB_UINT32_code : return ("GxB_ISLE_UINT32") ; case GB_UINT64_code : return ("GxB_ISLE_UINT64") ; case GB_FP32_code : return ("GxB_ISLE_FP32" ) ; case GB_FP64_code : return ("GxB_ISLE_FP64" ) ; default :; } break ; case GB_LOR_binop_code : // z = (x != 0) || (y != 0) switch (xcode) { case GB_BOOL_code : return ("GrB_LOR" ) ; case GB_INT8_code : return ("GxB_LOR_INT8" ) ; case GB_INT16_code : return ("GxB_LOR_INT16" ) ; case GB_INT32_code : return ("GxB_LOR_INT32" ) ; case GB_INT64_code : return ("GxB_LOR_INT64" ) ; case GB_UINT8_code : return ("GxB_LOR_UINT8" ) ; case GB_UINT16_code : return ("GxB_LOR_UINT16") ; case GB_UINT32_code : return ("GxB_LOR_UINT32") ; case GB_UINT64_code : return ("GxB_LOR_UINT64") ; case GB_FP32_code : return ("GxB_LOR_FP32" ) ; case GB_FP64_code : return ("GxB_LOR_FP64" ) ; default :; } break ; case GB_LAND_binop_code : // z = (x != 0) && (y != 0) switch (xcode) { case GB_BOOL_code : return ("GrB_LAND" ) ; case GB_INT8_code : return ("GxB_LAND_INT8" ) ; case GB_INT16_code : return ("GxB_LAND_INT16" ) ; case GB_INT32_code : return ("GxB_LAND_INT32" ) ; case GB_INT64_code : return ("GxB_LAND_INT64" ) ; case GB_UINT8_code : return ("GxB_LAND_UINT8" ) ; case GB_UINT16_code : return ("GxB_LAND_UINT16") ; case GB_UINT32_code : return ("GxB_LAND_UINT32") ; case GB_UINT64_code : return ("GxB_LAND_UINT64") ; case GB_FP32_code : return ("GxB_LAND_FP32" ) ; case GB_FP64_code : return ("GxB_LAND_FP64" ) ; default :; } break ; case GB_LXOR_binop_code : // z = (x != 0) != (y != 0) switch (xcode) { case GB_BOOL_code : return ("GrB_LXOR" ) ; case GB_INT8_code : return ("GxB_LXOR_INT8" ) ; case GB_INT16_code : return ("GxB_LXOR_INT16" ) ; case GB_INT32_code : return ("GxB_LXOR_INT32" ) ; case GB_INT64_code : return ("GxB_LXOR_INT64" ) ; case GB_UINT8_code : return ("GxB_LXOR_UINT8" ) ; case GB_UINT16_code : return ("GxB_LXOR_UINT16") ; case GB_UINT32_code : return ("GxB_LXOR_UINT32") ; case GB_UINT64_code : return ("GxB_LXOR_UINT64") ; case GB_FP32_code : return ("GxB_LXOR_FP32" ) ; case GB_FP64_code : return ("GxB_LXOR_FP64" ) ; default :; } break ; case GB_EQ_binop_code : // z = (x == y), is LXNOR for bool switch (xcode) { case GB_BOOL_code : return ("GrB_LXNOR" ) ; case GB_INT8_code : return ("GrB_EQ_INT8" ) ; case GB_INT16_code : return ("GrB_EQ_INT16" ) ; case GB_INT32_code : return ("GrB_EQ_INT32" ) ; case GB_INT64_code : return ("GrB_EQ_INT64" ) ; case GB_UINT8_code : return ("GrB_EQ_UINT8" ) ; case GB_UINT16_code : return ("GrB_EQ_UINT16") ; case GB_UINT32_code : return ("GrB_EQ_UINT32") ; case GB_UINT64_code : return ("GrB_EQ_UINT64") ; case GB_FP32_code : return ("GrB_EQ_FP32" ) ; case GB_FP64_code : return ("GrB_EQ_FP64" ) ; case GB_FC32_code : return ("GxB_EQ_FC32" ) ; case GB_FC64_code : return ("GxB_EQ_FC64" ) ; default :; } break ; case GB_BOR_binop_code : // z = (x | y), bitwise or switch (xcode) { case GB_INT8_code : return ("GrB_BOR_INT8" ) ; case GB_INT16_code : return ("GrB_BOR_INT16" ) ; case GB_INT32_code : return ("GrB_BOR_INT32" ) ; case GB_INT64_code : return ("GrB_BOR_INT64" ) ; case GB_UINT8_code : return ("GrB_BOR_UINT8" ) ; case GB_UINT16_code : return ("GrB_BOR_UINT16") ; case GB_UINT32_code : return ("GrB_BOR_UINT32") ; case GB_UINT64_code : return ("GrB_BOR_UINT64") ; default :; } break ; case GB_BAND_binop_code : // z = (x & y), bitwise and switch (xcode) { case GB_INT8_code : return ("GrB_BAND_INT8" ) ; case GB_INT16_code : return ("GrB_BAND_INT16" ) ; case GB_INT32_code : return ("GrB_BAND_INT32" ) ; case GB_INT64_code : return ("GrB_BAND_INT64" ) ; case GB_UINT8_code : return ("GrB_BAND_UINT8" ) ; case GB_UINT16_code : return ("GrB_BAND_UINT16") ; case GB_UINT32_code : return ("GrB_BAND_UINT32") ; case GB_UINT64_code : return ("GrB_BAND_UINT64") ; default :; } break ; case GB_BXOR_binop_code : // z = (x ^ y), bitwise xor switch (xcode) { case GB_INT8_code : return ("GrB_BXOR_INT8" ) ; case GB_INT16_code : return ("GrB_BXOR_INT16" ) ; case GB_INT32_code : return ("GrB_BXOR_INT32" ) ; case GB_INT64_code : return ("GrB_BXOR_INT64" ) ; case GB_UINT8_code : return ("GrB_BXOR_UINT8" ) ; case GB_UINT16_code : return ("GrB_BXOR_UINT16") ; case GB_UINT32_code : return ("GrB_BXOR_UINT32") ; case GB_UINT64_code : return ("GrB_BXOR_UINT64") ; default :; } break ; case GB_BXNOR_binop_code : // z = ~(x ^ y), bitwise xnor switch (xcode) { case GB_INT8_code : return ("GrB_BXNOR_INT8" ) ; case GB_INT16_code : return ("GrB_BXNOR_INT16" ) ; case GB_INT32_code : return ("GrB_BXNOR_INT32" ) ; case GB_INT64_code : return ("GrB_BXNOR_INT64" ) ; case GB_UINT8_code : return ("GrB_BXNOR_UINT8" ) ; case GB_UINT16_code : return ("GrB_BXNOR_UINT16") ; case GB_UINT32_code : return ("GrB_BXNOR_UINT32") ; case GB_UINT64_code : return ("GrB_BXNOR_UINT64") ; default :; } break ; case GB_BGET_binop_code : // z = bitget (x,y) switch (xcode) { case GB_INT8_code : return ("GxB_BGET_INT8" ) ; case GB_INT16_code : return ("GxB_BGET_INT16" ) ; case GB_INT32_code : return ("GxB_BGET_INT32" ) ; case GB_INT64_code : return ("GxB_BGET_INT64" ) ; case GB_UINT8_code : return ("GxB_BGET_UINT8" ) ; case GB_UINT16_code : return ("GxB_BGET_UINT16") ; case GB_UINT32_code : return ("GxB_BGET_UINT32") ; case GB_UINT64_code : return ("GxB_BGET_UINT64") ; default :; } break ; case GB_BSET_binop_code : // z = bitset (x,y) switch (xcode) { case GB_INT8_code : return ("GxB_BSET_INT8" ) ; case GB_INT16_code : return ("GxB_BSET_INT16" ) ; case GB_INT32_code : return ("GxB_BSET_INT32" ) ; case GB_INT64_code : return ("GxB_BSET_INT64" ) ; case GB_UINT8_code : return ("GxB_BSET_UINT8" ) ; case GB_UINT16_code : return ("GxB_BSET_UINT16") ; case GB_UINT32_code : return ("GxB_BSET_UINT32") ; case GB_UINT64_code : return ("GxB_BSET_UINT64") ; default :; } break ; case GB_BCLR_binop_code : // z = bitclr (x,y) switch (xcode) { case GB_INT8_code : return ("GxB_BCLR_INT8" ) ; case GB_INT16_code : return ("GxB_BCLR_INT16" ) ; case GB_INT32_code : return ("GxB_BCLR_INT32" ) ; case GB_INT64_code : return ("GxB_BCLR_INT64" ) ; case GB_UINT8_code : return ("GxB_BCLR_UINT8" ) ; case GB_UINT16_code : return ("GxB_BCLR_UINT16") ; case GB_UINT32_code : return ("GxB_BCLR_UINT32") ; case GB_UINT64_code : return ("GxB_BCLR_UINT64") ; default :; } break ; case GB_BSHIFT_binop_code : // z = bitshift (x,y) switch (xcode) { case GB_INT8_code : return ("GxB_BSHIFT_INT8" ) ; case GB_INT16_code : return ("GxB_BSHIFT_INT16" ) ; case GB_INT32_code : return ("GxB_BSHIFT_INT32" ) ; case GB_INT64_code : return ("GxB_BSHIFT_INT64" ) ; case GB_UINT8_code : return ("GxB_BSHIFT_UINT8" ) ; case GB_UINT16_code : return ("GxB_BSHIFT_UINT16") ; case GB_UINT32_code : return ("GxB_BSHIFT_UINT32") ; case GB_UINT64_code : return ("GxB_BSHIFT_UINT64") ; default :; } break ; case GB_NE_binop_code : // z = (x != y) switch (xcode) { case GB_BOOL_code : return ("GrB_NE_BOOL" ) ; case GB_INT8_code : return ("GrB_NE_INT8" ) ; case GB_INT16_code : return ("GrB_NE_INT16" ) ; case GB_INT32_code : return ("GrB_NE_INT32" ) ; case GB_INT64_code : return ("GrB_NE_INT64" ) ; case GB_UINT8_code : return ("GrB_NE_UINT8" ) ; case GB_UINT16_code : return ("GrB_NE_UINT16") ; case GB_UINT32_code : return ("GrB_NE_UINT32") ; case GB_UINT64_code : return ("GrB_NE_UINT64") ; case GB_FP32_code : return ("GrB_NE_FP32" ) ; case GB_FP64_code : return ("GrB_NE_FP64" ) ; case GB_FC32_code : return ("GxB_NE_FC32" ) ; case GB_FC64_code : return ("GxB_NE_FC64" ) ; default :; } break ; case GB_GT_binop_code : // z = (x > y) switch (xcode) { case GB_BOOL_code : return ("GrB_GT_BOOL" ) ; case GB_INT8_code : return ("GrB_GT_INT8" ) ; case GB_INT16_code : return ("GrB_GT_INT16" ) ; case GB_INT32_code : return ("GrB_GT_INT32" ) ; case GB_INT64_code : return ("GrB_GT_INT64" ) ; case GB_UINT8_code : return ("GrB_GT_UINT8" ) ; case GB_UINT16_code : return ("GrB_GT_UINT16") ; case GB_UINT32_code : return ("GrB_GT_UINT32") ; case GB_UINT64_code : return ("GrB_GT_UINT64") ; case GB_FP32_code : return ("GrB_GT_FP32" ) ; case GB_FP64_code : return ("GrB_GT_FP64" ) ; default :; } break ; case GB_LT_binop_code : // z = (x < y) switch (xcode) { case GB_BOOL_code : return ("GrB_LT_BOOL" ) ; case GB_INT8_code : return ("GrB_LT_INT8" ) ; case GB_INT16_code : return ("GrB_LT_INT16" ) ; case GB_INT32_code : return ("GrB_LT_INT32" ) ; case GB_INT64_code : return ("GrB_LT_INT64" ) ; case GB_UINT8_code : return ("GrB_LT_UINT8" ) ; case GB_UINT16_code : return ("GrB_LT_UINT16") ; case GB_UINT32_code : return ("GrB_LT_UINT32") ; case GB_UINT64_code : return ("GrB_LT_UINT64") ; case GB_FP32_code : return ("GrB_LT_FP32" ) ; case GB_FP64_code : return ("GrB_LT_FP64" ) ; default :; } break ; case GB_GE_binop_code : // z = (x >= y) switch (xcode) { case GB_BOOL_code : return ("GrB_GE_BOOL" ) ; case GB_INT8_code : return ("GrB_GE_INT8" ) ; case GB_INT16_code : return ("GrB_GE_INT16" ) ; case GB_INT32_code : return ("GrB_GE_INT32" ) ; case GB_INT64_code : return ("GrB_GE_INT64" ) ; case GB_UINT8_code : return ("GrB_GE_UINT8" ) ; case GB_UINT16_code : return ("GrB_GE_UINT16") ; case GB_UINT32_code : return ("GrB_GE_UINT32") ; case GB_UINT64_code : return ("GrB_GE_UINT64") ; case GB_FP32_code : return ("GrB_GE_FP32" ) ; case GB_FP64_code : return ("GrB_GE_FP64" ) ; default :; } break ; case GB_LE_binop_code : // z = (x <= y) switch (xcode) { case GB_BOOL_code : return ("GrB_LE_BOOL" ) ; case GB_INT8_code : return ("GrB_LE_INT8" ) ; case GB_INT16_code : return ("GrB_LE_INT16" ) ; case GB_INT32_code : return ("GrB_LE_INT32" ) ; case GB_INT64_code : return ("GrB_LE_INT64" ) ; case GB_UINT8_code : return ("GrB_LE_UINT8" ) ; case GB_UINT16_code : return ("GrB_LE_UINT16") ; case GB_UINT32_code : return ("GrB_LE_UINT32") ; case GB_UINT64_code : return ("GrB_LE_UINT64") ; case GB_FP32_code : return ("GrB_LE_FP32" ) ; case GB_FP64_code : return ("GrB_LE_FP64" ) ; default :; } break ; case GB_ATAN2_binop_code : // z = atan2 (x,y) switch (xcode) { case GB_FP32_code : return ("GxB_ATAN2_FP32") ; case GB_FP64_code : return ("GxB_ATAN2_FP64") ; default :; } break ; case GB_HYPOT_binop_code : // z = hypot (x,y) switch (xcode) { case GB_FP32_code : return ("GxB_HYPOT_FP32") ; case GB_FP64_code : return ("GxB_HYPOT_FP64") ; default :; } break ; case GB_FMOD_binop_code : // z = fmod (x,y) switch (xcode) { case GB_FP32_code : return ("GxB_FMOD_FP32") ; case GB_FP64_code : return ("GxB_FMOD_FP64") ; default :; } break ; case GB_REMAINDER_binop_code : // z = remainder (x,y) switch (xcode) { case GB_FP32_code : return ("GxB_REMAINDER_FP32") ; case GB_FP64_code : return ("GxB_REMAINDER_FP64") ; default :; } break ; case GB_COPYSIGN_binop_code : // z = copysign (x,y) switch (xcode) { case GB_FP32_code : return ("GxB_COPYSIGN_FP32") ; case GB_FP64_code : return ("GxB_COPYSIGN_FP64") ; default :; } break ; case GB_LDEXP_binop_code : // z = ldexp (x,y) switch (xcode) { case GB_FP32_code : return ("GxB_LDEXP_FP32") ; case GB_FP64_code : return ("GxB_LDEXP_FP64") ; default :; } break ; case GB_CMPLX_binop_code : // z = cmplx (x,y) switch (xcode) { case GB_FP32_code : return ("GxB_CMPLX_FP32") ; case GB_FP64_code : return ("GxB_CMPLX_FP64") ; default :; } break ; case GB_FIRSTI_binop_code : // z = first_i(A(i,j),y) == i switch (zcode) { case GB_INT32_code : return ("GxB_FIRSTI_INT32") ; case GB_INT64_code : return ("GxB_FIRSTI_INT64") ; default :; } break ; case GB_FIRSTI1_binop_code : // z = first_i1(A(i,j),y) == i+1 switch (zcode) { case GB_INT32_code : return ("GxB_FIRSTI1_INT32") ; case GB_INT64_code : return ("GxB_FIRSTI1_INT64") ; default :; } break ; case GB_FIRSTJ_binop_code : // z = first_j(A(i,j),y) == j switch (zcode) { case GB_INT32_code : return ("GxB_FIRSTJ_INT32") ; case GB_INT64_code : return ("GxB_FIRSTJ_INT64") ; default :; } break ; case GB_FIRSTJ1_binop_code : // z = first_j1(A(i,j),y) == j+1 switch (zcode) { case GB_INT32_code : return ("GxB_FIRSTJ1_INT32") ; case GB_INT64_code : return ("GxB_FIRSTJ1_INT64") ; default :; } break ; case GB_SECONDI_binop_code : // z = second_i(x,B(i,j)) == i switch (zcode) { case GB_INT32_code : return ("GxB_SECONDI_INT32") ; case GB_INT64_code : return ("GxB_SECONDI_INT64") ; default :; } break ; case GB_SECONDI1_binop_code : // z = second_i1(x,B(i,j)) == i+1 switch (zcode) { case GB_INT32_code : return ("GxB_SECONDI1_INT32") ; case GB_INT64_code : return ("GxB_SECONDI1_INT64") ; default :; } break ; case GB_SECONDJ_binop_code : // z = second_j(x,B(i,j)) == j switch (zcode) { case GB_INT32_code : return ("GxB_SECONDJ_INT32") ; case GB_INT64_code : return ("GxB_SECONDJ_INT64") ; default :; } break ; case GB_SECONDJ1_binop_code : // z = second_j1(x,B(i,j)) == j+1 switch (zcode) { case GB_INT32_code : return ("GxB_SECONDJ1_INT32") ; case GB_INT64_code : return ("GxB_SECONDJ1_INT64") ; default :; } break ; //---------------------------------------------------------------------- // user-defined operators //---------------------------------------------------------------------- case GB_USER_unop_code : case GB_USER_idxunop_code : case GB_USER_binop_code : return (op->user_name) ; //---------------------------------------------------------------------- // operator not recognized //---------------------------------------------------------------------- default :; } return ("") ; }