@staticmethod
def suzuki_trotter_time_steps(order):
    """Return time steps of U for the Suzuki Trotter decomposition of desired order.

        See :meth:`suzuki_trotter_decomposition` for details.

        Parameters
        ----------
        order : int
            The desired order of the Suzuki-Trotter decomposition.

        Returns
        -------
        time_steps : list of float
            We need ``U = exp(-i H_{even/odd} delta_t * dt)`` for the `dt` returned in this list.
        """
    if order == 1:
        return [1.0]
    elif order == 2:
        return [0.5, 1.0]
    elif order == 4:
        t1 = 1.0 / (4.0 - 4.0 ** (1 / 3.0))
        t3 = 1.0 - 4.0 * t1
        return [t1 / 2.0, t1, (t1 + t3) / 2.0, t3]
    raise ValueError('Unknown order {0!r} for Suzuki Trotter decomposition'
        .format(order))
