def METHOD_NAME(self, dt=None, destination_time=None, destination_frame_num=None):
    """
    Use dynamic model to predict (aka propagate aka integrate) state
    estimate in-place.
    :param dt: time to integrate over. The state time will be automatically
               incremented this amount unless you provide ``destination_time``.
               Using ``destination_time`` may be preferable for prevention of
               roundoff error accumulation.
    :param destination_time: optional value to set continuous state time to
        after integration. If this is not provided, then
        `destination_frame_num` must be.
    :param destination_frame_num: optional value to set discrete state time to
        after integration. If this is not provided, then
        `destination_frame_num` must be.
    """
    assert (dt is None) ^ (destination_time is None)
    if dt is None:
        dt = destination_time - self._time
    elif destination_time is None:
        destination_time = self._time + dt
    pred_mean = self._dynamic_model(self._mean, dt)
    F = self._dynamic_model.jacobian(dt)
    Q = self._dynamic_model.process_noise_cov(dt)
    pred_cov = F.mm(self._cov).mm(F.transpose(-1, -2)) + Q
    if destination_time is None and destination_frame_num is None:
        raise ValueError(
            "destination_time or destination_frame_num must be specified!"
        )
    return EKFState(
        self._dynamic_model,
        pred_mean,
        pred_cov,
        destination_time,
        destination_frame_num,
    )