docstr: ivy.Container static method variant of ivy.general_inner_product.
  This method simply wraps the function, and so the docstring for
  ivy.general_inner_product also applies to this method with minimal
  changes.
  
  Parameters
  ----------
  x1
      First input container containing input array.
  x2
      First input container containing input array.
  n_modes
      int, default is None. If None, the traditional inner product is returned
      (i.e. a float) otherwise, the product between the `n_modes` last modes of
      `x1` and the `n_modes` first modes of `x2` is returned. The resulting
      tensor's order is `len(x1) - n_modes`.
  key_chains
      The key-chains to apply or not apply the method to. Default is ``None``.
  to_apply
      If True, the method will be applied to key_chains, otherwise key_chains
      will be skipped. Default is ``True``.
  prune_unapplied
      Whether to prune key_chains for which the function was not applied.
      Default is ``False``.
  map_sequences
      Whether to also map method to sequences (lists, tuples).
      Default is ``False``.
  out
      Alternate output container in which to place the result.
      The default is None.
  
  Returns
  -------
  ret
      Container including the inner product tensor.
  
  Examples
  --------
  >>> x = ivy.Container(
          a=ivy.reshape(ivy.arange(4), (2, 2)),
          b=ivy.reshape(ivy.arange(8), (2, 4)),
      )
  >>> ivy.Container.general_inner_product(x, 1)
      {
          a: ivy.array(6),
          b: ivy.array(28)
      }
code: def static_general_inner_product(
      x1: Union[ivy.Container, ivy.Array, ivy.NativeArray],
      x2: Union[ivy.Container, ivy.Array, ivy.NativeArray],
      n_modes: Optional[Union[int, ivy.Container]] = None,
      /,
      *,
      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:
      """ivy.Container static method variant of ivy.general_inner_product.
      This method simply wraps the function, and so the docstring for
      ivy.general_inner_product also applies to this method with minimal
      changes.
  
      Parameters
      ----------
      x1
          First input container containing input array.
      x2
          First input container containing input array.
      n_modes
          int, default is None. If None, the traditional inner product is returned
          (i.e. a float) otherwise, the product between the `n_modes` last modes of
          `x1` and the `n_modes` first modes of `x2` is returned. The resulting
          tensor's order is `len(x1) - n_modes`.
      key_chains
          The key-chains to apply or not apply the method to. Default is ``None``.
      to_apply
          If True, the method will be applied to key_chains, otherwise key_chains
          will be skipped. Default is ``True``.
      prune_unapplied
          Whether to prune key_chains for which the function was not applied.
          Default is ``False``.
      map_sequences
          Whether to also map method to sequences (lists, tuples).
          Default is ``False``.
      out
          Alternate output container in which to place the result.
          The default is None.
  
      Returns
      -------
      ret
          Container including the inner product tensor.
  
      Examples
      --------
      >>> x = ivy.Container(
              a=ivy.reshape(ivy.arange(4), (2, 2)),
              b=ivy.reshape(ivy.arange(8), (2, 4)),
          )
      >>> ivy.Container.general_inner_product(x, 1)
          {
              a: ivy.array(6),
              b: ivy.array(28)
          }
      """
      return ContainerBase.cont_multi_map_in_function(
          "general_inner_product",
          x1,
          x2,
          n_modes,
          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 57 for calling the _ContainerWithLinearAlgebra obj's underlying member method code with example usage: obj.static_general_inner_product() and returns: ContainerBase