def fourth_bashforth(state, tendencies_list, timestep):
    """Return the new state using fourth-order Adams-Bashforth. tendencies_list
    should be a list of dictionaries whose values are tendencies in
    units/second (from oldest to newest), and timestep should be a timedelta
    object."""
    return_state = {}
    for key in tendencies_list[0].keys():
        return_state[key] = state[key] + timestep.total_seconds() * (55.0 /
            24 * tendencies_list[-1][key] - 59.0 / 24 * tendencies_list[-2]
            [key] + 37.0 / 24 * tendencies_list[-3][key] - 3.0 / 8 *
            tendencies_list[-4][key])
    return return_state
