parameters: (self, num_steps)
return_statement: return array_ops.gather(noise_additions, indices=num_steps)
docstring: r"""Sum a transitioned covariance matrix over a number of steps.
  
      Computes
  
        \sum_{i=0}^{num_steps - 1} (
          state_transition^i
          * state_transition_noise_covariance
          * (state_transition^i)^T)
  
      If special cases are available, overriding this function can lead to more
      efficient inferences.
  
      Args:
        num_steps: A [...] shape integer Tensor with numbers of steps to compute
          power sums for.
      Returns:
        The computed power sum, with shape [..., state dimension, state
        dimension].
docstring_summary: r"""Sum a transitioned covariance matrix over a number of steps.
docstring_tokens: r Sum a transitioned covariance matrix over a number of steps .
function: def transition_power_noise_accumulator(self, num_steps):
      r"""Sum a transitioned covariance matrix over a number of steps.
  
      Computes
  
        \sum_{i=0}^{num_steps - 1} (
          state_transition^i
          * state_transition_noise_covariance
          * (state_transition^i)^T)
  
      If special cases are available, overriding this function can lead to more
      efficient inferences.
  
      Args:
        num_steps: A [...] shape integer Tensor with numbers of steps to compute
          power sums for.
      Returns:
        The computed power sum, with shape [..., state dimension, state
        dimension].
      """
      # TODO(allenl): This general case should use cumsum if transition_to_powers
      # can be computed in constant time (important for correlated ensembles,
      # where transition_power_noise_accumulator special cases cannot be
      # aggregated from member models).
      noise_transform = ops.convert_to_tensor(self.get_noise_transform(),
                                              self.dtype)
      noise_transformed = math_ops.matmul(
          math_ops.matmul(noise_transform,
                          self.state_transition_noise_covariance),
          noise_transform,
          transpose_b=True)
      noise_additions = math_utils.power_sums_tensor(
          math_ops.reduce_max(num_steps) + 1,
          ops.convert_to_tensor(self.get_state_transition(), dtype=self.dtype),
          noise_transformed)
      return array_ops.gather(noise_additions, indices=num_steps)
function_tokens: def transition_power_noise_accumulator ( self , num_steps ) : # TODO(allenl): This general case should use cumsum if transition_to_powers # can be computed in constant time (important for correlated ensembles, # where transition_power_noise_accumulator special cases cannot be # aggregated from member models). noise_transform = ops . convert_to_tensor ( self . get_noise_transform ( ) , self . dtype ) noise_transformed = math_ops . matmul ( math_ops . matmul ( noise_transform , self . state_transition_noise_covariance ) , noise_transform , transpose_b = True ) noise_additions = math_utils . power_sums_tensor ( math_ops . reduce_max ( num_steps ) + 1 , ops . convert_to_tensor ( self . get_state_transition ( ) , dtype = self . dtype ) , noise_transformed ) return array_ops . gather ( noise_additions , indices = num_steps )