1function gbtest45 2%GBTEST45 test GrB.vreduce 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') ; 8d.kind = 'sparse' ; 9 10for trial = 1:40 11 12 A = rand (4) ; 13 G = GrB (A) ; 14 x = GrB.vreduce ('+', A) ; 15 y = GrB.vreduce ('+', G) ; 16 t = GrB.vreduce ('+', G, d) ; 17 z = sum (G, 2) ; 18 w = sum (A, 2) ; 19 20 assert (isequal (w, x)) ; 21 assert (isequal (w, y)) ; 22 assert (isequal (w, z)) ; 23 assert (isequal (w, t)) ; 24 25 assert (isequal (class (t), 'double')) ; 26 27 cin = rand (4,1) ; 28 x = GrB.vreduce (cin, '+', '+', A) ; 29 y = cin + sum (A, 2) ; 30 assert (isequal (x, y)) ; 31 32 m = logical (sprand (4, 1, 0.5)) ; 33 x = GrB.vreduce (cin, m, '+', '+', A) ; 34 t = cin + sum (A, 2) ; 35 y = cin ; 36 y (m) = t (m) ; 37 assert (isequal (x, y)) ; 38 39 x = GrB.vreduce (cin, m, '+', A) ; 40 t = sum (A, 2) ; 41 y = cin ; 42 y (m) = t (m) ; 43 assert (isequal (x, y)) ; 44 45end 46 47fprintf ('gbtest45: all tests passed\n') ; 48 49