File: gbtest53.m

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 (80 lines) | stat: -rw-r--r-- 1,931 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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
function gbtest53
%GBTEST53 test GrB.monoidinfo

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

types10 = {
    'double'
    'single'
    'int8'
    'int16'
    'int32'
    'int64'
    'uint8'
    'uint16'
    'uint32'
    'uint64'
    } ;

nmonoids = 0 ;

% 50 real monoids (integer and floating-point, not logical):
ops = { '+', '*', 'min', 'max', 'any' } ;
for k1 = 1:5
    op = ops {k1} ;
    fprintf ('\nop ( %s )=============================================\n', op) ;
    for k2 = 1:10
        type = types10 {k2} ;
        GrB.monoidinfo ([op '.' type]) ;
        GrB.monoidinfo (op, type) ;
        nmonoids = nmonoids + 1 ;
    end
end

% 5 boolean monoids:
ops = { '|', '&', 'xor', 'xnor', 'any' } ;
for k1 = 1:5
    op = ops {k1} ;
    fprintf ('\nop ( %s )=============================================\n', op) ;
    GrB.monoidinfo ([op '.logical']) ;
    GrB.monoidinfo (op, 'logical') ;
    nmonoids = nmonoids + 1 ;
end

% 6 complex
ops = { '+', '*', 'any' } ;
types = { 'single complex', 'double complex' } ;
for k1 = 1:3
    op = ops {k1} ;
    fprintf ('\nop ( %s )=============================================\n', op) ;
    for k2 = 1:2
        type = types {k2} ;
        GrB.monoidinfo ([op '.' type]) ;
        GrB.monoidinfo (op, type) ;
        nmonoids = nmonoids + 1 ;
    end
end

% 16 bitwise
ops = { 'bitor', 'bitand', 'bitxor', 'bitxnor' } ;
types = { 'uint8', 'uint16', 'uint32', 'uint64' } ;
for k1 = 1:4
    op = ops {k1} ;
    fprintf ('\nop ( %s )=============================================\n', op) ;
    for k2 = 1:4
        type = types {k2} ;
        GrB.monoidinfo ([op '.' type]) ;
        GrB.monoidinfo (op, type) ;
        nmonoids = nmonoids + 1 ;
    end
end

fprintf ('\n\n') ;
GrB.monoidinfo

fprintf ('number of monoids: %d\n', nmonoids) ;
assert (nmonoids == 77) ;

fprintf ('gbtest53: all tests passed\n') ;