1function test174
2%TEST174 bitmap assignment, C<!,repl>+=A
3
4% SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2021, All Rights Reserved.
5% SPDX-License-Identifier: Apache-2.0
6
7rng ('default') ;
8
9n = 100 ;
10A = GB_spec_random (n, n, 0.05, 1, 'double') ;
11A.sparsity = 2 ;
12
13C = GB_spec_random (n, n, 0.05, 1, 'double') ;
14C.sparsity = 4 ;
15
16desc.mask = 'complement' ;
17desc.outp = 'replace' ;
18
19% C<!,repl> += A
20C1 = GB_spec_assign (C, [ ], 'plus', A, [ ], [ ], desc, false) ;
21C2 = GB_mex_assign  (C, [ ], 'plus', A, [ ], [ ], desc, false) ;
22GB_spec_compare (C1, C2) ;
23
24k = 10 ;
25I = randperm (n, k) ;
26J = randperm (n, k) ;
27I0 = uint64 (I) - 1 ;
28J0 = uint64 (J) - 1 ;
29
30A = GB_spec_random (k, k, 0.05, 1, 'double') ;
31A.sparsity = 2 ;
32
33% C<!,repl>(I,J) += A
34C1 = GB_spec_assign (C, [ ], 'plus', A, I,  J,  desc, false) ;
35C2 = GB_mex_assign  (C, [ ], 'plus', A, I0, J0, desc, false) ;
36GB_spec_compare (C1, C2) ;
37
38I = 2 ;
39I0 = uint64 (I) - 1 ;
40Arow = sprand (n, 1, 0.5) ;
41Acol = sprand (n, 1, 0.5) ;
42
43% C<!,repl>(i,:) = A
44C1 = GB_spec_Row_assign (C, [ ], 'plus', Arow, I,  [ ],  desc) ;
45C2 = GB_mex_assign      (C, [ ], 'plus', Arow, I0, [ ], desc, 2) ;
46GB_spec_compare (C1, C2) ;
47
48% C<!,repl>(:,i) = A
49C1 = GB_spec_Col_assign (C, [ ], 'plus', Acol, [ ], I,  desc) ;
50C2 = GB_mex_assign      (C, [ ], 'plus', Acol, [ ], I0, desc, 1) ;
51GB_spec_compare (C1, C2) ;
52
53fprintf ('test174: all tests passed\n') ;
54