1function test31 2%TEST31 test GrB_transpose 3 4% SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2021, All Rights Reserved. 5% SPDX-License-Identifier: Apache-2.0 6 7fprintf ('\n------------------- simple tests of GB_mex_transpose\n') ; 8 9rng ('default') ; 10A = sprand (4, 3, 0.4) ; 11% full (A) 12% full (A') 13C = GB_mex_transpose (sparse (3,4), [ ], [ ], A) ; 14assert (GB_spok (C.matrix) == 1) ; 15assert (isequal (C.matrix,A')) ; 16 17% C = A 18D = struct ('inp0', 'tran') ; 19C = GB_mex_transpose (sparse(4,3), [ ], [ ], A, D) ; 20assert (isequal (C.matrix,A)) ; 21 22% C = A' 23C = GB_mex_transpose (sparse(3,4), [ ], [ ], A) ; 24assert (isequal (C.matrix,A')) ; 25 26Cin = sprand (4, 3, 0.5) ; 27Cin2 = Cin' ; 28 29% C = A' 30C = GB_mex_transpose (Cin2, [ ], [ ], A) ; 31assert (isequal (C.matrix,A')) ; 32 33% C = Cin2+A' 34C = GB_mex_transpose (Cin2, [ ], 'plus', A) ; 35assert (isequal (C.matrix,Cin2+A')) ; 36 37% C = Cin+A 38D = struct ('inp0', 'tran') ; 39C = GB_mex_transpose (Cin, [ ], 'plus', A, D) ; 40assert (isequal (C.matrix,Cin+A)) ; 41 42ops = { 43 'first', 44 'second', 45 'pair', 46 'min', 47 'max', 48 'plus', 49 'minus', 50 'times', 51 'div', } ; 52 53for k = 1:length(ops) 54 op = ops {k} ; 55 56 % C = op (Cin2,A') 57 D = struct ; 58 C = GB_mex_transpose (Cin2, [ ], op, A, D) ; 59 S = GB_spec_transpose (Cin2, [ ], op, A, D) ; 60 assert (isequal (C.matrix, sparse (S.matrix))) ; 61 assert (isequal (GB_spones_mex (C.matrix), sparse (S.pattern))) ; 62 63 % C = A', ignore the op 64 D = struct ('outp', 'replace') ; 65 C = GB_mex_transpose (Cin2, [ ], op, A, D) ; 66 S = GB_spec_transpose (Cin2, [ ], op, A, D) ; 67 assert (isequal (GB_spones_mex (C.matrix), sparse (S.pattern))) ; 68 69 % C = A, ignore the op 70 D = struct ('inp0', 'tran', 'outp', 'replace') ; 71 C = GB_mex_transpose (Cin, [ ], op, A, D) ; 72 S = GB_spec_transpose (Cin, [ ], op, A, D) ; 73 assert (isequal (GB_spones_mex (C.matrix), sparse (S.pattern))) ; 74 75 % C = op (Cin,A) 76 D = struct ('inp0', 'tran') ; 77 C = GB_mex_transpose (Cin, [ ], op, A, D) ; 78 S = GB_spec_transpose (Cin, [ ], op, A, D) ; 79 assert (isequal (GB_spones_mex (C.matrix), sparse (S.pattern))) ; 80 81end 82 83%{ 84A = sprand (20, 16, 0.45) 85C = GB_mex_transpose (A) 86 87A = sparse (rand (40,10)) ; 88C = GB_mex_transpose (A) 89%} 90 91fprintf ('\ntest31: all tests passed\n') ; 92 93