File: GB_charify_identity_or_terminal.c

package info (click to toggle)
suitesparse-graphblas 7.4.0%2Bdfsg-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 67,112 kB
  • sloc: ansic: 1,072,243; cpp: 8,081; sh: 512; makefile: 506; asm: 369; python: 125; awk: 10
file content (62 lines) | stat: -rw-r--r-- 2,431 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
//------------------------------------------------------------------------------
// GB_charify_identity_or_terminal: string for identity/terminal value
//------------------------------------------------------------------------------

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

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

#include "GB.h"
#include "GB_stringify.h"

const char *GB_charify_identity_or_terminal // return string encoding the value
(
    // input:
    int ecode                   // enumerated identity/terminal value
)
{

    const char *f ;

    switch (ecode)
    {

        //----------------------------------------------------------------------
        // for identity values and terminal values for terminal monoids
        //----------------------------------------------------------------------

        case  0 : f = "0"                   ; break ;
        case  1 : f = "1"                   ; break ;
        case  2 : f = "true"                ; break ;
        case  3 : f = "false"               ; break ;
        case  4 : f = "INT8_MAX"            ; break ;
        case  5 : f = "INT16_MAX"           ; break ;
        case  6 : f = "INT32_MAX"           ; break ;
        case  7 : f = "INT64_MAX"           ; break ;
        case  8 : f = "UINT8_MAX"           ; break ;
        case  9 : f = "UINT16_MAX"          ; break ;
        case 10 : f = "UINT32_MAX"          ; break ;
        case 11 : f = "UINT64_MAX"          ; break ;
        case 12 : f = "INFINITY"            ; break ;
        case 13 : f = "INT8_MIN"            ; break ;
        case 14 : f = "INT16_MIN"           ; break ;
        case 15 : f = "INT32_MIN"           ; break ;
        case 16 : f = "INT64_MIN"           ; break ;
        case 17 : f = "-INFINITY"           ; break ;
        case 18 : f = "0"                   ; break ; // for ANY monoid only
        case 19 : f = "0xFF"                ; break ;
        case 20 : f = "0xFFFF"              ; break ;
        case 21 : f = "0xFFFFFFFF"          ; break ;
        case 22 : f = "0xFFFFFFFFFFFFFFFF"  ; break ;

        // ecodes 19 to 28 are reserved for future use

        // user-defined monoid (terminal or non-terminal) or
        // built-in non-terminal monoid
        default : f = "" ;                  ; break ;
    }

    return (f) ;
}