1function gbtest12
2%GBTEST12 test GrB.eadd, GrB.emult
3
4% SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2021, All Rights Reserved.
5% SPDX-License-Identifier: GPL-3.0-or-later
6
7rng ('default') ;
8A = sparse (rand (2)) ;
9B = sparse (rand (2)) ;
10
11C = A+B ;
12D = A.*B ;
13
14G = GrB.eadd ('+', A, B) ;
15err = norm (C-G, 1) %#ok<*NOPRT>
16assert (logical (err < 1e-12))
17
18H = GrB.emult ('*', A, B) ;
19err = norm (D-H, 1)
20assert (logical (err < 1e-12))
21
22d.kind = 'sparse' ;
23d.in0 = 'transpose' ;
24d
25
26G = GrB.eadd ('+', A, B, d) ;
27C = A'+B ;
28err = norm (C-G, 1)
29assert (logical (err < 1e-12))
30
31H = GrB.emult ('*', A, B, d) ;
32D = A'.*B ;
33err = norm (H-D, 1)
34assert (logical (err < 1e-12))
35
36d.kind = 'GrB' ;
37G = GrB.eadd ('+', A, B, d) ;
38err = norm (C-G, 1) %#ok<*NASGU>
39
40H = GrB.emult ('*', A, B, d) ;
41err = norm (D-H, 1)
42
43E = sparse (rand (2)) ;
44C = E + A+B ;
45G = GrB.eadd (E, '+', '+', A, B) ;
46C-G %#ok<*MNEFF>
47
48F = sparse (rand (2)) ;
49D = F + A.*B ;
50H = GrB.emult (F, '+', '*', A, B) ;
51D-H
52assert (gbtest_eq (D, H)) ;
53
54G = GrB.eadd ('+', A, B)
55C = A+B
56assert (gbtest_eq (C, G)) ;
57
58H = GrB.emult ('*', A, B)
59D = A.*B
60assert (gbtest_eq (D, H)) ;
61
62m = 10 ;
63n = 12 ;
64A = sprand (m, n, 0.5) ;
65B = sprand (m, n, 0.5) ;
66M = logical (sprand (m, n, 0.5)) ;
67Cin = sprand (m, n, 0.5) ;
68G = GrB (Cin) ;
69T = Cin + A .* B ;
70C = Cin ;
71C (M) = T (M) ;
72G = GrB.emult (Cin, M, '+', '*', A, B) ;
73err = norm (C-G, 1) ;
74assert (err < 1e-12)
75
76G = GrB.eadd (Cin, M, '+', '+', A, B) ;
77C = Cin ;
78T = Cin + A + B ;
79C (M) = T (M) ;
80err = norm (C-G, 1) ;
81assert (err < 1e-12)
82
83G = GrB.eadd (Cin, M, '+', A, B) ;
84C = Cin ;
85T = A + B ;
86C (M) = T (M) ;
87err = norm (C-G, 1) ;
88assert (err < 1e-12)
89
90C = sprand (m, n, 0.5) ;
91G = GrB (C) ;
92T = A .* B ;
93C (M) = T (M) ;
94G = GrB.emult (G, M, '*', A, B) ;
95err = norm (C-G, 1) ;
96assert (err < 1e-12)
97
98fprintf ('gbtest12: all tests passed\n') ;
99
100