def METHOD_NAME(a, overwrite_a=False, check_finite=True):
    """Efficient wrapper for eigh.
    Parameters
    ----------
    a : ndarray, shape (n_components, n_components)
        The symmetric array operate on.
    overwrite_a : bool
        If True, the contents of a can be overwritten for efficiency.
    check_finite : bool
        If True, check that all elements are finite.
    Returns
    -------
    w : ndarray, shape (n_components,)
        The N eigenvalues, in ascending order, each repeated according to
        its multiplicity.
    v : ndarray, shape (n_components, n_components)
        The normalized eigenvector corresponding to the eigenvalue ``w[i]``
        is the column ``v[:, i]``.
    """
    # We use SYEVD, see https://github.com/scipy/scipy/issues/9212
    if check_finite:
        a = _asarray_validated(a, check_finite=check_finite)
    evd, driver = _get_evd(a.dtype)
    w, v, info = evd(a, lower=1, overwrite_a=overwrite_a)
    if info == 0:
        return w, v
    if info < 0:
        raise ValueError(
            "illegal value in argument %d of internal %s" % (-info, driver)
        )
    else:
        raise linalg.LinAlgError(
            "internal fortran routine failed to converge: "
            "%i off-diagonal elements of an "
            "intermediate tridiagonal form did not converge"
            " to zero." % info
        )