def METHOD_NAME(
    self, cutoff: float = 0.0, scaled: bool = True, as_float: bool = True
) -> Mapping[str | float, float]:
    """Filter phases as does `PhaseEstimatorResult.filter_phases`, with
    the addition that `phi` is shifted and translated to return eigenvalues
    of the Hamiltonian.
    Args:
        cutoff: Minimum weight of number of counts required to keep a bit string.
            The default value is `0.0`.
        scaled: If False, return `phi` in :math:`[0, 1)` rather than the eigenvalues of
            the Hamiltonian.
        as_float: If `True`, returned keys are floats in :math:`[0.0, 1.0)`. If `False`
            returned keys are bit strings.
    Raises:
        ValueError: if `as_float` is `False` and `scaled` is `True`.
    Returns:
        A dict of filtered phases.
    """
    if scaled and not as_float:
        raise ValueError("`as_float` must be `True` if `scaled` is `True`.")
    phases = self._phase_estimation_result.METHOD_NAME(cutoff, as_float=as_float)
    if scaled:
        return cast(
            dict, self._phase_estimation_scale.scale_phases(phases, self._id_coefficient)
        )
    else:
        return cast(dict, phases)