code: def eigvals(a):
      r"""
      Compute the eigenvalues of a general matrix.
  
      Main difference between `eigvals` and `eig`: the eigenvectors aren't
      returned.
  
      Parameters
      ----------
      a : (..., M, M) ndarray
          A real-valued matrix whose eigenvalues will be computed.
  
      Returns
      -------
      w : (..., M,) ndarray
          The eigenvalues, each repeated according to its multiplicity.
          They are not necessarily ordered.
  
      Raises
      ------
      MXNetError
          If the eigenvalue computation does not converge.
  
      See Also
      --------
      eig : eigenvalues and right eigenvectors of general arrays
      eigh : eigenvalues and eigenvectors of a real symmetric array.
      eigvalsh : eigenvalues of a real symmetric.
  
      Notes
      -----
      Broadcasting rules apply, see the `numpy.linalg` documentation for
      details.
  
      This is implemented using the ``_geev`` LAPACK routines which compute
      the eigenvalues and eigenvectors of general square arrays.
  
      This function differs from the original `numpy.linalg.eigvals
      <https://docs.scipy.org/doc/numpy/reference/generated/numpy.linalg.eigvals.html>`_ in
      the following way(s):
       - Does not support complex input and output.
      """
      return _npi.eigvals(a)
  
imports: import numpy
  from .None import _symbol
  from .None import _op
  from .None import _internal
label_desc: Use image node_id 14 for calling a global function with example usage: eigvals(a) and returns: _npi