code: def kron(a, b):
      """Kronecker product.
  
      The result is the block matrix::
          a[0,0]*b    a[0,1]*b  ... a[0,-1]*b
          a[1,0]*b    a[1,1]*b  ... a[1,-1]*b
          ...
          a[-1,0]*b   a[-1,1]*b ... a[-1,-1]*b
  
      Args:
          a (cupy.ndarray): Input array
          b (cupy.ndarray): Input array
  
      Returns:
          cupy.ndarray: Kronecker product of ``a`` and ``b``.
  
      .. seealso:: :func:`scipy.linalg.kron`
      """
      o = cupy.outer(a, b)
      o = o.reshape(a.shape + b.shape)
      return cupy.concatenate(cupy.concatenate(o, axis=1), axis=1)
  
imports: import math
  import warnings
  import cupy
  from cupy import _core
  from cupyx.scipy.linalg import _uarray
label_desc: Use image node_id 10 for calling a global function with example usage: kron(a, b) and returns: cupy