parameters: (a, b)
return_statement: return tensordot(a.reshape_view((-1, )), b.reshape_view((-1, )), 0)
docstring: r"""
      Compute the outer product of two vectors.
      Given two vectors, ``a = [a0, a1, ..., aM]`` and
      ``b = [b0, b1, ..., bN]``,
      the outer product [1]_ is::
      [[a0*b0  a0*b1 ... a0*bN ]
      [a1*b0    .
      [ ...          .
      [aM*b0            aM*bN ]]
  
      Parameters
      ----------
      a : (M,) ndarray
          First input vector.  Input is flattened if
          not already 1-dimensional.
      b : (N,) ndarray
          Second input vector.  Input is flattened if
          not already 1-dimensional.
  
      Returns
      -------
      out : (M, N) ndarray
          ``out[i, j] = a[i] * b[j]``
      See also
      --------
      inner
      einsum : ``einsum('i,j->ij', a.ravel(), b.ravel())`` is the equivalent.
      ufunc.outer : A generalization to N dimensions and other operations.
                  ``np.multiply.outer(a.ravel(), b.ravel())`` is the equivalent.
      References
      ----------
      .. [1] : G. H. Golub and C. F. Van Loan, *Matrix Computations*, 3rd
              ed., Baltimore, MD, Johns Hopkins University Press, 1996,
              pg. 8.
      Examples
      --------
      Make a (*very* coarse) grid for computing a Mandelbrot set:
      >>> rl = np.outer(np.ones((5,)), np.linspace(-2, 2, 5))
      >>> rl
      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.]])
docstring_summary: r"""
      Compute the outer product of two vectors.
      Given two vectors, ``a = [a0, a1, ..., aM]`` and
      ``b = [b0, b1, ..., bN]``,
      the outer product [1]_ is::
      [[a0*b0  a0*b1 ... a0*bN ]
      [a1*b0    .
      [ ...          .
      [aM*b0            aM*bN ]]
docstring_tokens: r Compute the outer product of two vectors . Given two vectors a = [ a0 a1 ... aM ] and b = [ b0 b1 ... bN ] the outer product [ 1 ] _ is :: [[ a0 * b0 a0 * b1 ... a0 * bN ] [ a1 * b0 . [ ... . [ aM * b0 aM * bN ]]
function: def outer(a, b):
      r"""
      Compute the outer product of two vectors.
      Given two vectors, ``a = [a0, a1, ..., aM]`` and
      ``b = [b0, b1, ..., bN]``,
      the outer product [1]_ is::
      [[a0*b0  a0*b1 ... a0*bN ]
      [a1*b0    .
      [ ...          .
      [aM*b0            aM*bN ]]
  
      Parameters
      ----------
      a : (M,) ndarray
          First input vector.  Input is flattened if
          not already 1-dimensional.
      b : (N,) ndarray
          Second input vector.  Input is flattened if
          not already 1-dimensional.
  
      Returns
      -------
      out : (M, N) ndarray
          ``out[i, j] = a[i] * b[j]``
      See also
      --------
      inner
      einsum : ``einsum('i,j->ij', a.ravel(), b.ravel())`` is the equivalent.
      ufunc.outer : A generalization to N dimensions and other operations.
                  ``np.multiply.outer(a.ravel(), b.ravel())`` is the equivalent.
      References
      ----------
      .. [1] : G. H. Golub and C. F. Van Loan, *Matrix Computations*, 3rd
              ed., Baltimore, MD, Johns Hopkins University Press, 1996,
              pg. 8.
      Examples
      --------
      Make a (*very* coarse) grid for computing a Mandelbrot set:
      >>> rl = np.outer(np.ones((5,)), np.linspace(-2, 2, 5))
      >>> rl
      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 tensordot(a.reshape_view((-1, )), b.reshape_view((-1, )), 0)
function_tokens: def outer ( a , b ) : return tensordot ( a . reshape_view ( ( - 1 , ) ) , b . reshape_view ( ( - 1 , ) ) , 0 )