1function gbtest48 2%GBTEST48 test GrB.apply 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') ; 8desc.kind = 'sparse' ; 9 10for trial = 1:40 11 12 A = rand (4) ; 13 A (A > .5) = 0 ; 14 G = GrB (A) ; 15 16 C0 = -A ; 17 C1 = GrB.apply ('negate', A) ; 18 C2 = GrB.apply ('negate', A, desc) ; 19 C3 = GrB.apply ('negate', G, desc) ; 20 C4 = GrB.apply ('negate', G) ; 21 22 assert (isequal (C0, C1)) ; 23 assert (isequal (C0, C2)) ; 24 assert (isequal (C0, C3)) ; 25 assert (isequal (C0, C4)) ; 26 27 assert (isequal (class (C2), 'double')) ; 28 assert (isequal (class (C3), 'double')) ; 29 30 M = logical (sprand (4, 4, 0.5)) ; 31 Cin = rand (4) ; 32 T = Cin + (-A) ; 33 C0 = Cin ; 34 C0 (M) = T (M) ; 35 C1 = GrB.apply (Cin, M, '+', '-', A) ; 36 assert (isequal (C0, C1)) ; 37 38 C0 = Cin + (-A) ; 39 C1 = GrB.apply (Cin, '+', '-', A) ; 40 assert (isequal (C0, C1)) ; 41 42 T = -A ; 43 C0 = Cin ; 44 C0 (M) = T (M) ; 45 C1 = GrB.apply (Cin, M, '', '-', A) ; 46 assert (isequal (C0, C1)) ; 47 48end 49 50fprintf ('gbtest48: all tests passed\n') ; 51 52