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