class_docstr: Integrates (/cumsums) a noise-free state space model.
  
  The integrated model represents the cumulative sum of sequences sampled from
  an underlying state space model. In the absence of observation noise,
  this distribution is equivalent to `tfb.Cumsum()(original_ssm)`, but is
  represented explicitly as a linear Gaussian state space model allowing it to
  compose with other state space model components.
  
  The augmented transition model stores the expected output from step `t - 1`
  as additional dimension(s) in the latent state at step `t`. The observation
  model at each step is also then augmented to sum the current output of the
  underlying SSM with the previous (expected) output. Formally:
  
  ```python
  augmented_latent[t] = concat([original_latent[t], output[t-1]])
  
  augmented_transition_matrix = [
    [original_transition_matrix, zeros([latent_size, 1])],
    [original_observation_matrix, [1.]]
  ]
  augmented_observation_matrix = [original_observation_matrix, [1.]]
  ```
code: def __init__(
      self, original_ssm, name=None, **linear_gaussian_ssm_kwargs
  ):
      parameters = dict(locals(), **linear_gaussian_ssm_kwargs)
      del parameters["linear_gaussian_ssm_kwargs"]
  
      # Use settings from `original_ssm` if not otherwise specified.
      for arg_name in ("initial_step", "experimental_parallelize"):
          if arg_name not in linear_gaussian_ssm_kwargs:
              linear_gaussian_ssm_kwargs[arg_name] = getattr(
                  original_ssm, arg_name
              )
      if (
          linear_gaussian_ssm_kwargs.get("initial_state_prior", None)
          is None
      ):
          # Augment prior on latents with extra dims for the previous observation.
          linear_gaussian_ssm_kwargs[
              "initial_state_prior"
          ] = _pad_mvn_with_trailing_zeros(
              original_ssm.initial_state_prior,
              original_ssm.observation_size_tensor(),
          )
  
      self._original_ssm = original_ssm
      super().__init__(
          num_timesteps=original_ssm.num_timesteps,
          transition_matrix=self._get_cumsum_transition_matrix_for_timestep,
          transition_noise=self._get_cumsum_transition_noise_for_timestep,
          observation_matrix=self._get_cumsum_observation_matrix_for_timestep,
          observation_noise=original_ssm.observation_noise,
          name=name or "cumsum_" + original_ssm.name,
          **linear_gaussian_ssm_kwargs,
      )
      self._parameters = parameters
  
imports: import tensorflow.compat.v2
  from tensorflow_probability.python.bijectors import chain
  from tensorflow_probability.python.bijectors import identity
  from tensorflow_probability.python.bijectors import scale
  from tensorflow_probability.python.bijectors import softplus
  from tensorflow_probability.python.bijectors import tanh
  from tensorflow_probability.python.distributions import linear_gaussian_ssm
  from tensorflow_probability.python.distributions import lognormal
  from tensorflow_probability.python.distributions import mvn_diag
  from tensorflow_probability.python.internal import dtype_util
  from tensorflow_probability.python.internal import prefer_static
  from tensorflow_probability.python.sts.components.autoregressive_moving_average import AutoregressiveMovingAverageStateSpaceModel
  from tensorflow_probability.python.sts.internal import missing_values_util
  from tensorflow_probability.python.sts.internal import util
  from tensorflow_probability.python.sts.structural_time_series import Parameter
  from tensorflow_probability.python.sts.structural_time_series import StructuralTimeSeries
label_desc: Use image node_id 1 to create a new IntegratedStateSpaceModel object from inherited base classes: lgssm with example: obj = IntegratedStateSpaceModel(original_ssm, name)