1function test181 2%TEST181 test transpose with explicit zeros in the Mask 3 4% SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2021, All Rights Reserved. 5% SPDX-License-Identifier: Apache-2.0 6 7% see also test99 8 9rng ('default') ; 10 11fprintf ('test181: transpose with explicit zeros in the Mask\n') ; 12 13masks = { '', 'complement', 'structural', 'structural complement' } ; 14repls = { '', 'replace' } ; 15 16for n = 10:20 17 for d = 0:.1:1 18 fprintf ('.') ; 19 for k = 1:10 20 21 C = sprand (n, n, 0.1) ; 22 A = GB_spec_random (n, n, 0.1) ; 23 A.sparsity = 4 ; 24 if (d == 1) 25 Mask = sparse (rand (n)) ; 26 else 27 Mask = sprand (n, n, d) ; 28 end 29 if (nnz (Mask) > 0) 30 [i j x] = find (Mask) ; 31 nz = length (x) ; 32 p = randperm (nz, floor(nz/2)) ; 33 x (p) = 0 ; 34 i = uint64 (i-1) ; 35 j = uint64 (j-1) ; 36 Mask = GB_mex_Matrix_build (i,j,x,n,n,[]) ; 37 Mask = Mask.matrix ; 38 end 39 40 for k1 = 1:length(masks) 41 for k2 = 1:2 42 43 clear desc 44 desc.inp0 = 'tran' ; 45 if (~isempty (masks {k1})) 46 desc.mask = masks {k1} ; 47 end 48 if (~isempty (repls {k2})) 49 desc.outp = repls {k2} ; 50 end 51 52 C2 = GB_spec_transpose (C, Mask, [], A, desc) ; 53 C3 = GB_mex_transpose (C, Mask, [], A, desc) ; 54 GB_spec_compare (C2, C3) ; 55 56 C2 = GB_spec_transpose (C, Mask, [], C, desc) ; 57 C3 = GB_mex_transpose (C, Mask, [], C, desc) ; 58 GB_spec_compare (C2, C3) ; 59 60 end 61 end 62 end 63 end 64end 65 66fprintf ('\ntest181: all tests passed\n') ; 67 68