code: def outer(a, b):
      r"""
      Computes the outer product of two vectors `a` and `b`.
  
      Notes
      -----
      `outer` is an alias for `outer`. It is a standard API in
      https://data-apis.org/array-api/latest/extensions/linear_algebra_functions.html#linalg-outer-x1-x2
      instead of an official NumPy operator.
  
      Parameters
      ----------
      a : ndarray
          One-dimensional input array of size `N` . Should have a numeric data type.
      b : ndarray
          One-dimensional input array of size `M` . Should have a numeric data type.
  
      Returns
      -------
      out : ndarray
          A two-dimensional array containing the outer product and whose shape is `(N, M)`.
          The returned array must have a data type determined by Type Promotion Rules.
  
      Examples
      --------
      Make a (*very* coarse) grid for computing a Mandelbrot set:
  
      >>> x = np.linalg.outer(np.ones((5,)), np.linspace(-2, 2, 5))
      >>> x
      array([[-2., -1.,  0.,  1.,  2.],
             [-2., -1.,  0.,  1.,  2.],
             [-2., -1.,  0.,  1.,  2.],
             [-2., -1.,  0.,  1.,  2.],
             [-2., -1.,  0.,  1.,  2.]])
      """
      return _mx_nd_np.tensordot(a.flatten(), b.flatten(), 0)
  
imports: from functools import reduce
  from ..ndarray import numpy
  from ..util import wrap_data_api_linalg_func
  from .fallback_linalg import *
  from .None import fallback_linalg
label_desc: Use image node_id 7 for calling a global function with example usage: outer(a, b) and returns: _mx_nd_np