class_docstr: The kalmanFilter class the provide the basic functionalities
  
  Attributes:
      discount: the discounting factor determining how much information to carry on
      updateInnovation: indicate whether the innovation matrix should be updated.
                        default to True.
  
  Methods:
      predict: predict one step ahead of the current state
      forwardFilter: one step filter on the model given a new observation
      backwardSmoother: one step backward smooth given the future model and the
                        filtered state and systematic covariance
      backwardSampler: similar to backwardSmoother, using sampling instead of
                       deterministic equations.
      updateDiscount: for updating the discount factors
class_docstr_tok: ["The","kalmanFilter","class","the","provide","the","basic","functionalities","Attributes",":","discount",":","the","discounting","factor","determining","how","much","information","to","carry","on","updateInnovation",":","indicate","whether","the","innovation","matrix","should","be","updated",".","default","to","True",".","Methods",":","predict",":","predict","one","step","ahead","of","the","current","state","forwardFilter",":","one","step","filter","on","the","model","given","a","new","observation","backwardSmoother",":","one","step","backward","smooth","given","the","future","model","and","the","filtered","state","and","systematic","covariance","backwardSampler",":","similar","to","backwardSmoother",",","using","sampling","instead","of","deterministic","equations",".","updateDiscount",":","for","updating","the","discount","factors"]
docstr: update the innovation matrix of the model, but only for component
  indepdently. (i.e., only add innovation to block diagonals, not on off
  block diagonals)
docstr_tok: ["update","the","innovation","matrix","of","the","model",",","but","only","for","component","indepdently",".","(","i.e.",",","only","add","innovation","to","block","diagonals",",","not","on","off","block","diagonals",")"]
code: def __updateInnovation2__(self, model):
      """update the innovation matrix of the model, but only for component
      indepdently. (i.e., only add innovation to block diagonals, not on off
      block diagonals)
  
      """
  
      innovation = (
          np.dot(
              np.dot(self.discount, model.prediction.sysVar),
              self.discount,
          )
          - model.prediction.sysVar
      )
      model.innovation = np.matrix(np.zeros(innovation.shape))
      for name in self.index:
          indx = self.index[name]
          model.innovation[
              indx[0] : (indx[1] + 1), indx[0] : (indx[1] + 1)
          ] = innovation[
              indx[0] : (indx[1] + 1), indx[0] : (indx[1] + 1)
          ]
  
file_path: pydlm/pydlm/base/kalmanFilter.py
imports: import numpy
  import pydlm.base.tools
label_desc: Use image node_id 9 for calling the kalmanFilter obj's underlying member method code with example usage: obj.__updateInnovation2__(model) without return types