docstr: Return the outer product of two arrays or containers.
  
  The instance method implementation of the static method static_outer of the
  ivy.Container class. It calculates the outer product of two input arrays or
  containers along the last dimension and returns the resulting container. The
  input arrays should be either ivy.Container, ivy.Array, or ivy.NativeArray. The
  output container shape is the concatenation of the shapes of the input
  containers along the last dimension.
  
  Parameters
  ----------
  self : ivy.Container
      Input container of shape (...,B) where the last dimension
      represents B elements.
  x2 : Union[ivy.Container, ivy.Array, ivy.NativeArray]
      Second input array or container of shape (..., N)
      where the last dimension represents N elements.
  key_chains : Optional[Union[List[str], Dict[str, str]]]
      The key-chains to apply or not apply the method to. Default is None.
  to_apply : bool
      If True, the method will be applied to key_chains,
      otherwise key_chains will be skipped.Default is True.
  prune_unapplied : bool
      Whether to prune key_chains for which the function was not applied.
      Default is False.
  map_sequences : bool
      Whether to also map the method to sequences (lists, tuples).
      Default is False.
  out : Optional[ivy.Container]
      Optional output container to write the result to.
      If not provided, a new container will be created.
  
  Returns
  -------
  ivy.Container
      A new container of shape (..., M, N) representing
      the outer product of the input arrays or containers
      along the last dimension.
  
  Examples
  --------
  >>> x = ivy.array([[1., 2.],[3., 4.]])
  >>> y = ivy.array([[5., 6.],[7., 8.]])
  >>> d = ivy.outer(x,y)
  >>> print(d)
  ivy.array([[ 5.,  6.,  7.,  8.],
              [10., 12., 14., 16.],
              [15., 18., 21., 24.],
              [20., 24., 28., 32.]])
code: def outer(
      self: ivy.Container,
      x2: Union[ivy.Container, ivy.Array, ivy.NativeArray],
      /,
      *,
      key_chains: Optional[
          Union[List[str], Dict[str, str], ivy.Container]
      ] = None,
      to_apply: Union[bool, ivy.Container] = True,
      prune_unapplied: Union[bool, ivy.Container] = False,
      map_sequences: Union[bool, ivy.Container] = False,
      out: Optional[ivy.Container] = None,
  ) -> ivy.Container:
      """Return the outer product of two arrays or containers.
  
      The instance method implementation of the static method static_outer of the
      ivy.Container class. It calculates the outer product of two input arrays or
      containers along the last dimension and returns the resulting container. The
      input arrays should be either ivy.Container, ivy.Array, or ivy.NativeArray. The
      output container shape is the concatenation of the shapes of the input
      containers along the last dimension.
  
      Parameters
      ----------
      self : ivy.Container
          Input container of shape (...,B) where the last dimension
          represents B elements.
      x2 : Union[ivy.Container, ivy.Array, ivy.NativeArray]
          Second input array or container of shape (..., N)
          where the last dimension represents N elements.
      key_chains : Optional[Union[List[str], Dict[str, str]]]
          The key-chains to apply or not apply the method to. Default is None.
      to_apply : bool
          If True, the method will be applied to key_chains,
          otherwise key_chains will be skipped.Default is True.
      prune_unapplied : bool
          Whether to prune key_chains for which the function was not applied.
          Default is False.
      map_sequences : bool
          Whether to also map the method to sequences (lists, tuples).
          Default is False.
      out : Optional[ivy.Container]
          Optional output container to write the result to.
          If not provided, a new container will be created.
  
      Returns
      -------
      ivy.Container
          A new container of shape (..., M, N) representing
          the outer product of the input arrays or containers
          along the last dimension.
  
      Examples
      --------
      >>> x = ivy.array([[1., 2.],[3., 4.]])
      >>> y = ivy.array([[5., 6.],[7., 8.]])
      >>> d = ivy.outer(x,y)
      >>> print(d)
      ivy.array([[ 5.,  6.,  7.,  8.],
                  [10., 12., 14., 16.],
                  [15., 18., 21., 24.],
                  [20., 24., 28., 32.]])
      """
      return self._static_outer(
          self,
          x2,
          key_chains=key_chains,
          to_apply=to_apply,
          prune_unapplied=prune_unapplied,
          map_sequences=map_sequences,
          out=out,
      )
  
imports: from typing import Union, Optional, Tuple, Literal, List, Dict, Sequence
  from ivy.data_classes.container.base import ContainerBase
  import ivy
label_desc: Use image node_id 32 for calling the _ContainerWithLinearAlgebra obj's underlying member method code with example usage: obj.outer() and returns: self