1function C = kronecker (arg1, arg2, arg3, arg4, arg5, arg6, arg7) 2%GRB.KRONECKER sparse Kronecker product. 3% 4% C = GrB.kronecker (op, A, B, desc) 5% C = GrB.kronecker (Cin, accum, op, A, B, desc) 6% C = GrB.kronecker (Cin, M, op, A, B, desc) 7% C = GrB.kronecker (Cin, M, accum, op, A, B, desc) 8% 9% GrB.kronecker computes the Kronecker product, T=kron(A,B), using the 10% given binary operator op, in place of the conventional '*' operator for 11% the MATLAB built-in kron. See also C = kron (A,B), which uses the 12% default semiring operators if A and/or B are GrB matrices. 13% 14% T is then accumulated into C via C<#M,replace> = accum (C,T). 15% 16% See also kron, GrB/kron. 17 18% SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2021, All Rights Reserved. 19% SPDX-License-Identifier: GPL-3.0-or-later 20 21if (isobject (arg1)) 22 arg1 = arg1.opaque ; 23end 24 25if (isobject (arg2)) 26 arg2 = arg2.opaque ; 27end 28 29if (isobject (arg3)) 30 arg3 = arg3.opaque ; 31end 32 33if (nargin > 3 && isobject (arg4)) 34 arg4 = arg4.opaque ; 35end 36 37if (nargin > 4 && isobject (arg5)) 38 arg5 = arg5.opaque ; 39end 40 41if (nargin > 5 && isobject (arg6)) 42 arg6 = arg6.opaque ; 43end 44 45switch (nargin) 46 case 3 47 [C, k] = gbkronecker (arg1, arg2, arg3) ; 48 case 4 49 [C, k] = gbkronecker (arg1, arg2, arg3, arg4) ; 50 case 5 51 [C, k] = gbkronecker (arg1, arg2, arg3, arg4, arg5) ; 52 case 6 53 [C, k] = gbkronecker (arg1, arg2, arg3, arg4, arg5, arg6) ; 54 case 7 55 [C, k] = gbkronecker (arg1, arg2, arg3, arg4, arg5, arg6, arg7) ; 56end 57 58if (k == 0) 59 C = GrB (C) ; 60end 61 62