MCPcopy Create free account
hub / github.com/RedisGraph/RedisGraph / GB_enumify_identity

Function GB_enumify_identity

deps/GraphBLAS/Source/GB_enumify_identity.c:13–100  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

11#include "GB_stringify.h"
12
13void GB_enumify_identity
14(
15 // output:
16 int *ecode, // enumerated identity, 0 to 31
17 // inputs:
18 GB_Opcode opcode, // built-in binary opcode of a monoid
19 GB_Type_code zcode // type code of the operator
20)
21{
22
23 int e = 31 ; // default: use the monoid->identity bytes
24
25 switch (opcode)
26 {
27
28 case GB_PLUS_binop_code : e = 0 ; break ; // 0
29
30 case GB_TIMES_binop_code : e = 1 ; break ; // 1
31
32 case GB_LAND_binop_code :
33 case GB_EQ_binop_code : // LXNOR
34 e = (zcode == GB_BOOL_code) ? 2 : (31) ; break ; // true
35
36 case GB_LOR_binop_code :
37 case GB_LXOR_binop_code :
38 e = (zcode == GB_BOOL_code) ? 3 : (31) ; break ; // false
39
40 case GB_MIN_binop_code :
41
42 switch (zcode)
43 {
44 case GB_BOOL_code : e = 2 ; break ; // true
45 case GB_INT8_code : e = 4 ; break ; // INT8_MAX
46 case GB_INT16_code : e = 5 ; break ; // INT16_MAX
47 case GB_INT32_code : e = 6 ; break ; // INT32_MAX
48 case GB_INT64_code : e = 7 ; break ; // INT64_MAX
49 case GB_UINT8_code : e = 8 ; break ; // UINT8_MAX
50 case GB_UINT16_code : e = 9 ; break ; // UINT16_MAX
51 case GB_UINT32_code : e = 10 ; break ; // UINT32_MAX
52 case GB_UINT64_code : e = 11 ; break ; // UINT64_MAX
53 case GB_FP32_code :
54 case GB_FP64_code : e = 12 ; break ; // INFINITY
55 default: ;
56 }
57 break ;
58
59 case GB_MAX_binop_code :
60
61 switch (zcode)
62 {
63 case GB_BOOL_code : e = 3 ; break ; // false
64 case GB_INT8_code : e = 13 ; break ; // INT8_MIN
65 case GB_INT16_code : e = 14 ; break ; // INT16_MIN
66 case GB_INT32_code : e = 15 ; break ; // INT32_MIN
67 case GB_INT64_code : e = 16 ; break ; // INT64_MIN
68 case GB_UINT8_code :
69 case GB_UINT16_code :
70 case GB_UINT32_code :

Callers 2

GB_enumify_monoidFunction · 0.85
mexFunctionFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected