CAReducer

class CAReducer(step_time: float, duration: float = 0.0, inclusive: bool = False, inplace: bool = False)[source]

Bases: FoldReducer

Stores the cumulative average.

\[\begin{split}\begin{align*} \mu(t) &= \frac{x(t) + n(t - \Delta t) \mu(t - \Delta t)}{n(t)} \\ n(t) &= \frac{t}{\Delta t} \end{align*}\end{split}\]
Parameters:
  • step_time (float) – length of the discrete step time, \(\Delta t\).

  • duration (float, optional) – length of time over which results should be stored, in the same units as \(\Delta t\). Defaults to 0.0.

  • inclusive (bool, optional) – if the duration should be inclusive. Defaults to False.

  • inplace (bool, optional) – if write operations should be performed in-place. Defaults to False.

clear(keepshape=False, **kwargs) None[source]

Reinitializes the reducer’s state.

Parameters:

keepshape (bool, optional) – if the underlying storage shape should be preserved. Defaults to False.

fold(obs: Tensor, state: Tensor | None) Tensor[source]

Application of summation.

Parameters:
  • obs (torch.Tensor) – observation to incorporate into state.

  • state (torch.Tensor | None) – state from the prior time step, None if no prior observations.

Returns:

state for the current time step.

Return type:

torch.Tensor

interpolate(prev_data: Tensor, next_data: Tensor, sample_at: Tensor, step_time: float) Tensor[source]

Linear interpolation between observations.

Parameters:
  • prev_data (torch.Tensor) – most recent observation prior to sample time.

  • next_data (torch.Tensor) – most recent observation subsequent to sample time.

  • sample_at (torch.Tensor) – relative time at which to sample data.

  • step_time (float) – length of time between the prior and subsequent observations.

Returns:

interpolated data at sample time.

Return type:

torch.Tensor