parameters: (a)
return_statement: return (w, v)
docstring: r"""
      Compute the eigenvalues and right eigenvectors of a square array.
  
      Parameters
      ----------
      a : (..., M, M) ndarray
          Matrices for which the eigenvalues and right eigenvectors will
          be computed
  
      Returns
      -------
      w : (..., M) ndarray
          The eigenvalues, each repeated according to its multiplicity.
          The eigenvalues are not necessarily ordered.
      v : (..., M, M) ndarray
          The normalized (unit "length") eigenvectors, such that the
          column ``v[:,i]`` is the eigenvector corresponding to the
          eigenvalue ``w[i]``.
  
      Raises
      ------
      MXNetError
          If the eigenvalue computation does not converge.
  
      See Also
      --------
      eigvals : eigenvalues of a non-symmetric array.
      eigh : eigenvalues and eigenvectors of a real symmetric array.
      eigvalsh : eigenvalues of a real symmetric.
  
      Notes
      -----
      This is implemented using the ``_geev`` LAPACK routines which compute
      the eigenvalues and eigenvectors of general square arrays.
  
      The number `w` is an eigenvalue of `a` if there exists a vector
      `v` such that ``dot(a,v) = w * v``. Thus, the arrays `a`, `w`, and
      `v` satisfy the equations ``dot(a[:,:], v[:,i]) = w[i] * v[:,i]``
      for :math:`i \\in \\{0,...,M-1\\}`.
  
      The array `v` of eigenvectors may not be of maximum rank, that is, some
      of the columns may be linearly dependent, although round-off error may
      obscure that fact. If the eigenvalues are all different, then theoretically
      the eigenvectors are linearly independent.
  
      This function differs from the original `numpy.linalg.eig
      <https://docs.scipy.org/doc/numpy/reference/generated/numpy.linalg.eig.html>`_ in
      the following way(s):
       - Does not support complex input and output.
  
      Examples
      --------
      >>> from numpy import linalg as LA
      >>> a = np.array([[-1.9147992 ,  6.054115  , 18.046988  ],
                        [ 0.77563655, -4.860152  ,  2.1012988 ],
                        [ 2.6083658 ,  2.3705218 ,  0.3192524 ]])
      >>> w, v = LA.eig(a)
      >>> w
      array([ 6.9683027, -7.768063 , -5.655937 ])
      >>> v
      array([[ 0.90617794,  0.9543622 ,  0.2492316 ],
             [ 0.13086087, -0.04077047, -0.9325615 ],
             [ 0.4021404 , -0.29585576,  0.26117516]])
docstring_summary: r"""
      Compute the eigenvalues and right eigenvectors of a square array.
docstring_tokens: r Compute the eigenvalues and right eigenvectors of a square array .
function: def eig(a):
      r"""
      Compute the eigenvalues and right eigenvectors of a square array.
  
      Parameters
      ----------
      a : (..., M, M) ndarray
          Matrices for which the eigenvalues and right eigenvectors will
          be computed
  
      Returns
      -------
      w : (..., M) ndarray
          The eigenvalues, each repeated according to its multiplicity.
          The eigenvalues are not necessarily ordered.
      v : (..., M, M) ndarray
          The normalized (unit "length") eigenvectors, such that the
          column ``v[:,i]`` is the eigenvector corresponding to the
          eigenvalue ``w[i]``.
  
      Raises
      ------
      MXNetError
          If the eigenvalue computation does not converge.
  
      See Also
      --------
      eigvals : eigenvalues of a non-symmetric array.
      eigh : eigenvalues and eigenvectors of a real symmetric array.
      eigvalsh : eigenvalues of a real symmetric.
  
      Notes
      -----
      This is implemented using the ``_geev`` LAPACK routines which compute
      the eigenvalues and eigenvectors of general square arrays.
  
      The number `w` is an eigenvalue of `a` if there exists a vector
      `v` such that ``dot(a,v) = w * v``. Thus, the arrays `a`, `w`, and
      `v` satisfy the equations ``dot(a[:,:], v[:,i]) = w[i] * v[:,i]``
      for :math:`i \\in \\{0,...,M-1\\}`.
  
      The array `v` of eigenvectors may not be of maximum rank, that is, some
      of the columns may be linearly dependent, although round-off error may
      obscure that fact. If the eigenvalues are all different, then theoretically
      the eigenvectors are linearly independent.
  
      This function differs from the original `numpy.linalg.eig
      <https://docs.scipy.org/doc/numpy/reference/generated/numpy.linalg.eig.html>`_ in
      the following way(s):
       - Does not support complex input and output.
  
      Examples
      --------
      >>> from numpy import linalg as LA
      >>> a = np.array([[-1.9147992 ,  6.054115  , 18.046988  ],
                        [ 0.77563655, -4.860152  ,  2.1012988 ],
                        [ 2.6083658 ,  2.3705218 ,  0.3192524 ]])
      >>> w, v = LA.eig(a)
      >>> w
      array([ 6.9683027, -7.768063 , -5.655937 ])
      >>> v
      array([[ 0.90617794,  0.9543622 ,  0.2492316 ],
             [ 0.13086087, -0.04077047, -0.9325615 ],
             [ 0.4021404 , -0.29585576,  0.26117516]])
      """
      w, v = _api_internal.eig(a)
      return (w, v)
function_tokens: def eig ( a ) : w , v = _api_internal . eig ( a ) return ( w , v )