class_docstr: State-Centric EKF (Extended Kalman Filter) for use with either an NCP
  (Nearly-Constant Position) or NCV (Nearly-Constant Velocity) target dynamic
  model. Stores a target dynamic model, state estimate, and state time.
  Incoming ``Measurement`` provide sensor information for updates.
  
  .. warning:: For efficiency, the dynamic model is only shallow-copied. Make
      a deep copy outside as necessary to protect against unexpected changes.
  
  :param dynamic_model: target dynamic model.
  :param mean: mean of target state estimate.
  :param cov: covariance of target state estimate.
  :param time: time of state estimate.
class_docstr_tok: ["State-Centric","EKF","(","Extended","Kalman","Filter",")","for","use","with","either","an","NCP","(","Nearly-Constant","Position",")","or","NCV","(","Nearly-Constant","Velocity",")","target","dynamic","model",".","Stores","a","target","dynamic","model",",","state","estimate",",","and","state","time",".","Incoming","``","Measurement","``","provide","sensor","information","for","updates",".","..","warning",":",":","For","efficiency",",","the","dynamic","model","is","only","shallow-copied",".","Make","a","deep","copy","outside","as","necessary","to","protect","against","unexpected","changes",".",":","param","dynamic_model",":","target","dynamic","model",".",":","param","mean",":","mean","of","target","state","estimate",".",":","param","cov",":","covariance","of","target","state","estimate",".",":","param","time",":","time","of","state","estimate","."]
docstr: 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.
docstr_tok: ["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","."]
code: def predict(
      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,
      )
  
file_path: pyro/pyro/contrib/tracking/extended_kalman_filter.py
imports: import torch
  from torch.distributions.utils import lazy_property
  import pyro.distributions
  from pyro.distributions.util import eye_like
label_desc: Use image node_id 11 for calling the EKFState obj's underlying member method code with example usage: obj.predict(dt, destination_time, destination_frame_num) and returns: EKFState