1function test176
2%TEST176 test C(I,J)<M,repl> = scalar (method 09, 11), M bitmap
3
4% SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2021, All Rights Reserved.
5% SPDX-License-Identifier: Apache-2.0
6
7fprintf ('test176 ------------ assign/subassign: methods 09, 11\n') ;
8
9m = 10 ;
10n = 14 ;
11
12rng ('default') ;
13desc.outp = 'replace' ;
14scalar = sparse (pi) ;
15I = [1 2 4 5 6 8] ;
16J = [3 2 4 9 7 1] ;
17I0 = uint64 (I) - 1 ;
18J0 = uint64 (J) - 1 ;
19
20for trial = 1:10
21
22    clear M Cin
23    M.matrix = logical (spones (sprand (m, n, 0.5))) ;
24    M.sparsity = 4 ; % bitmap
25
26    Cin = GB_spec_random (m, n, 0.5, 1, 'double') ;
27    Cin.sparsity = 2 ; % sparse
28
29    C1 = GB_spec_assign (Cin, M, [ ], scalar, I,  J,  desc, true) ;
30    C2 = GB_mex_assign  (Cin, M, [ ], scalar, I0, J0, desc) ;
31    GB_spec_compare (C1, C2) ;
32
33    C1 = GB_spec_assign (Cin, M, 'plus', scalar, I,  J,  desc, true) ;
34    C2 = GB_mex_assign  (Cin, M, 'plus', scalar, I0, J0, desc) ;
35    GB_spec_compare (C1, C2) ;
36
37    M.matrix = logical (spones (sprand (length (I), length (J), 0.5))) ;
38    M.sparsity = 4 ; % bitmap
39
40    C1 = GB_spec_subassign (Cin, M, [ ], scalar, I,  J,  desc, true) ;
41    C2 = GB_mex_subassign  (Cin, M, [ ], scalar, I0, J0, desc) ;
42    GB_spec_compare (C1, C2) ;
43
44    C1 = GB_spec_subassign (Cin, M, 'plus', scalar, I,  J,  desc, true) ;
45    C2 = GB_mex_subassign  (Cin, M, 'plus', scalar, I0, J0, desc) ;
46    GB_spec_compare (C1, C2) ;
47
48end
49
50fprintf ('\ntest176: all tests passed\n') ;
51