1function test177
2%TEST177 C<!M>=A*B, C bitmap, M sparse, A bitmap, B sparse
3
4% SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2021, All Rights Reserved.
5% SPDX-License-Identifier: Apache-2.0
6
7fprintf ('test177:   C<!M>=A*B, C bitmap, M sparse, A bitmap, B sparse\n') ;
8
9n = 20 ;
10
11rng ('default') ;
12
13desc.mask = 'complement' ;
14semiring.class = 'double' ;
15
16for trial = 1:10
17
18    clear M Cin
19    M.matrix = logical (spones (sprand (n, n, 0.5))) ;
20    M.sparsity = 2 ; % bitmap
21
22    Cin = GB_spec_random (n, n, 0.5, 1, 'double') ;
23    Cin.sparsity = 4 ; % bitmap
24
25    A = GB_spec_random (n, n, 0.5, 1, 'double') ;
26    A.sparsity = 4 ; % bitmap
27
28    B = GB_spec_random (n, n, 0.5, 1, 'double') ;
29    B.sparsity = 2 ; % sparse
30
31    semiring.add = 'plus' ;
32    semiring.multiply = 'times' ;
33
34    C1 = GB_spec_mxm (Cin, M, [ ], semiring, A, B, desc) ;
35    C2 = GB_mex_mxm  (Cin, M, [ ], semiring, A, B, desc) ;
36    GB_spec_compare (C1, C2) ;
37
38    semiring.add = 'max' ;
39    semiring.multiply = 'plus' ;
40
41    C1 = GB_spec_mxm (Cin, M, [ ], semiring, A, B, desc) ;
42    C2 = GB_mex_mxm  (Cin, M, [ ], semiring, A, B, desc) ;
43    GB_spec_compare (C1, C2) ;
44
45end
46
47fprintf ('\ntest177: all tests passed\n') ;
48
49