1function gbtest91
2%GBTEST91 test GrB.trans
3%
4% C = GrB.trans (A)
5% C = GrB.trans (A, desc)
6% C = GrB.trans (C, accum, A, desc)
7% C = GrB.trans (C, M, A, desc)
8% C = GrB.trans (C, M, accum, A, desc)
9
10% SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2021, All Rights Reserved.
11% SPDX-License-Identifier: GPL-3.0-or-later
12
13rng ('default')
14
15C      = GrB.random (8, 9, 0.5) ;
16M      = GrB.random (8, 9, 0.5, 'range', logical ([false true])) ;
17accum  = '+' ;
18A      = GrB.random (9, 8, 0.5) ;
19desc   = struct ;
20
21c = double (C) ;
22a = double (A) ;
23m = logical (M) ;
24
25%----------------------------------------------------------------------
26% C = GrB.trans (A)
27%----------------------------------------------------------------------
28
29% 1 matrix: A
30% 0 string:
31
32C2 = A.' ;
33c2 = a.' ;
34assert (isequal (c2, C2)) ;
35
36C1 = GrB.trans (A) ; assert (isequal (C1, C2)) ;
37C1 = GrB.trans (a) ; assert (isequal (C1, C2)) ;
38
39%----------------------------------------------------------------------
40% C = GrB.trans (A, desc)
41%----------------------------------------------------------------------
42
43% 1 matrix: A
44% 0 string:
45
46C2 = A.' ;
47c2 = a.' ;
48assert (isequal (c2, C2)) ;
49
50C1 = GrB.trans (A, desc) ; assert (isequal (C1, C2)) ;
51C1 = GrB.trans (a, desc) ; assert (isequal (C1, C2)) ;
52
53%----------------------------------------------------------------------
54% C = GrB.trans (C, accum, A, desc)
55%----------------------------------------------------------------------
56
57% 2 matrices C, A
58% 1 string: accum
59
60C2 = C + A.' ;
61c2 = c + a.' ;
62assert (isequal (c2, C2)) ;
63
64C1 = GrB.trans (C, accum, A, desc) ; assert (isequal (C1, C2)) ;
65C1 = GrB.trans (C, A, accum, desc) ; assert (isequal (C1, C2)) ;
66C1 = GrB.trans (accum, C, A, desc) ; assert (isequal (C1, C2)) ;
67
68C1 = GrB.trans (c, accum, a, desc) ; assert (isequal (C1, C2)) ;
69C1 = GrB.trans (c, a, accum, desc) ; assert (isequal (C1, C2)) ;
70C1 = GrB.trans (accum, c, a, desc) ; assert (isequal (C1, C2)) ;
71
72%----------------------------------------------------------------------
73% C = GrB.trans (C, M, A, desc)
74%----------------------------------------------------------------------
75
76% 3 matrices C, M, A
77
78% C<M> = A.'
79
80C2 = C ;
81T = A.' ;
82C2 (M) = T (M) ;
83
84c2 = c ;
85t = a.' ;
86c2 (m) = t (m) ;
87assert (isequal (c2, C2)) ;
88
89C1 = GrB.trans (C, M, A, desc) ; assert (isequal (C1, C2)) ;
90C1 = GrB.trans (c, m, a, desc) ; assert (isequal (C1, C2)) ;
91
92%----------------------------------------------------------------------
93% C = GrB.trans (C, M, accum, A, desc)
94%----------------------------------------------------------------------
95
96% 3 matrices C, M, A
97% 1 string: accum
98
99% C<M> += A.'
100
101C2 = C ;
102T = C + A.' ;
103C2 (M) = T (M) ;
104
105c2 = c ;
106t = c + a.' ;
107c2 (m) = t (m) ;
108assert (isequal (c2, C2)) ;
109
110C1 = GrB.trans (C, M, accum, A, desc) ; assert (isequal (C1, C2)) ;
111C1 = GrB.trans (accum, C, M, A, desc) ; assert (isequal (C1, C2)) ;
112C1 = GrB.trans (C, accum, M, A, desc) ; assert (isequal (C1, C2)) ;
113C1 = GrB.trans (C, M, A, accum, desc) ; assert (isequal (C1, C2)) ;
114
115C1 = GrB.trans (c, m, accum, a, desc) ; assert (isequal (C1, C2)) ;
116C1 = GrB.trans (accum, c, m, a, desc) ; assert (isequal (C1, C2)) ;
117C1 = GrB.trans (c, accum, m, a, desc) ; assert (isequal (C1, C2)) ;
118C1 = GrB.trans (c, m, a, accum, desc) ; assert (isequal (C1, C2)) ;
119
120fprintf ('gbtest91: all tests passed\n') ;
121