1function C = trans (arg1, arg2, arg3, arg4, arg5)
2%GRB.TRANS transpose a sparse matrix.
3%
4%   C = GrB.trans (A)
5%   C = GrB.trans (A, desc)
6%   C = GrB.trans (Cin, accum, A, desc)
7%   C = GrB.trans (Cin, M, A, desc)
8%   C = GrB.trans (Cin, M, accum, A, desc)
9%
10% The descriptor is optional.  If desc.in0 is 'transpose', then C<M>=A or
11% C<M>=accum(C,A) is computed, since the default behavior is to transpose
12% the input matrix.
13%
14% For complex matrices, GrB.trans computes the array transpose, not the
15% matrix (complex conjugate) transpose.
16%
17% See also GrB/transpose, GrB/ctranspose, GrB/conj.
18
19% SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2021, All Rights Reserved.
20% SPDX-License-Identifier: GPL-3.0-or-later
21
22if (isobject (arg1))
23    arg1 = arg1.opaque ;
24end
25
26if (nargin > 1 && isobject (arg2))
27    arg2 = arg2.opaque ;
28end
29
30if (nargin > 2 && isobject (arg3))
31    arg3 = arg3.opaque ;
32end
33
34if (nargin > 3 && isobject (arg4))
35    arg4 = arg4.opaque ;
36end
37
38switch (nargin)
39    case 1
40        [C, k] = gbtrans (arg1) ;
41    case 2
42        [C, k] = gbtrans (arg1, arg2) ;
43    case 3
44        [C, k] = gbtrans (arg1, arg2, arg3) ;
45    case 4
46        [C, k] = gbtrans (arg1, arg2, arg3, arg4) ;
47    case 5
48        [C, k] = gbtrans (arg1, arg2, arg3, arg4, arg5) ;
49end
50
51if (k == 0)
52    C = GrB (C) ;
53end
54
55