1function test99 2%TEST99 test GB_mex_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 7rng ('default') ; 8 9fprintf ('test99: GB_mex_transpose with explicit zeros in the Mask\n') ; 10 11masks = { '', 'complement', 'structural', 'structural complement' } ; 12repls = { '', 'replace' } ; 13 14for n = 10:20 15 for d = 0:.1:1 16 fprintf ('.') ; 17 for k = 1:10 18 19 C = sprand (n, n, 0.1) ; 20 A = sprand (n, n, 0.1) ; 21 if (d == 1) 22 Mask = sparse (rand (n)) ; 23 else 24 Mask = sprand (n, n, d) ; 25 end 26 if (nnz (Mask) > 0) 27 [i j x] = find (Mask) ; 28 nz = length (x) ; 29 p = randperm (nz, floor(nz/2)) ; 30 x (p) = 0 ; 31 i = uint64 (i-1) ; 32 j = uint64 (j-1) ; 33 Mask = GB_mex_Matrix_build (i,j,x,n,n,[]) ; 34 Mask = Mask.matrix ; 35 end 36 37 for k1 = 1:length(masks) 38 for k2 = 1:2 39 40 clear desc 41 desc.inp0 = 'tran' ; 42 if (~isempty (masks {k1})) 43 desc.mask = masks {k1} ; 44 end 45 if (~isempty (repls {k2})) 46 desc.outp = repls {k2} ; 47 end 48 49 C2 = GB_spec_transpose (C, Mask, [], A, desc) ; 50 C3 = GB_mex_transpose (C, Mask, [], A, desc) ; 51 GB_spec_compare (C2, C3) ; 52 53 C2 = GB_spec_transpose (C, Mask, [], C, desc) ; 54 C3 = GB_mex_transpose (C, Mask, [], C, desc) ; 55 GB_spec_compare (C2, C3) ; 56 57 end 58 end 59 end 60 end 61end 62 63fprintf ('\ntest99: all tests passed\n') ; 64 65