class_docstr: An abstract base class for generating synthetic time series data.
  Generates a 1-dimensional grid x(0), x(1), ..., x(n-1), where x(i) = x0 + i * step.
  Then generates a time series y(0), y(1), ..., y(n-1), where y(i) = f(x(i)) + noise.
class_docstr_tok: ["An","abstract","base","class","for","generating","synthetic","time","series","data",".","Generates","a","1-dimensional","grid","x","(","0",")",",","x","(","1",")",",","...",",","x","(","n-1",")",",","where","x","(","i",")","=","x0","+","i","*","step",".","Then","generates","a","time","series","y","(","0",")",",","y","(","1",")",",","...",",","y","(","n-1",")",",","where","y","(","i",")","=","f","(","x","(","i",")",")","+","noise","."]
docstr: Updates the x-steps that are used to generate the time series
  based on the current values of `n`, `x0`, and `step`.
docstr_tok: ["Updates","the","x-steps","that","are","used","to","generate","the","time","series","based","on","the","current","values","of","`","n","`",",","`","x0","`",",","and","`","step","`","."]
code: def _update_steps(self):
      """
      Updates the x-steps that are used to generate the time series
      based on the current values of `n`, `x0`, and `step`.
      """
      if all(hasattr(self, attr) for attr in ("_n", "_x0", "_step")):
          self.steps = [self.x0 + self.step * x for x in range(self.n)]
  
imports: import numpy
  import pandas
  from operator import add
  from functools import reduce
  from typing import Callable, List, Union
  from merlion.utils.time_series import UnivariateTimeSeries, TimeSeries
label_desc: Use image node_id 8 for calling the TimeSeriesGenerator obj's underlying member method code with example usage: obj._update_steps() without return types