docstr: Piecewise schedule.
  
  endpoints: [(int, int)]
      list of pairs `(time, value)` meanining that schedule should output
      `value` when `t==time`. All the values for time must be sorted in
      an increasing order. When t is between two times, e.g. `(time_a, value_a)`
      and `(time_b, value_b)`, such that `time_a <= t < time_b` then value outputs
      `interpolation(value_a, value_b, alpha)` where alpha is a fraction of
      time passed between `time_a` and `time_b` for time `t`.
  interpolation: lambda float, float, float: float
      a function that takes value to the left and to the right of t according
      to the `endpoints`. Alpha is the fraction of distance from left endpoint to
      right endpoint that t has covered. See linear_interpolation for example.
  outside_value: float
      if the value is requested outside of all the intervals sepecified in
      `endpoints` this value is returned. If None then AssertionError is
      raised when outside value is requested.
docstr_tok: ["Piecewise","schedule",".","endpoints",":","[","(","int",",","int",")","]","list","of","pairs","`","(","time",",","value",")","`","meanining","that","schedule","should","output","`","value","`","when","`","t==time","`",".","All","the","values","for","time","must","be","sorted","in","an","increasing","order",".","When","t","is","between","two","times",",","e.g",".","`","(","time_a",",","value_a",")","`","and","`","(","time_b",",","value_b",")","`",",","such","that","`","time_a","<","=","t","<","time_b","`","then","value","outputs","`","interpolation","(","value_a",",","value_b",",","alpha",")","`","where","alpha","is","a","fraction","of","time","passed","between","`","time_a","`","and","`","time_b","`","for","time","`","t","`",".","interpolation",":","lambda","float",",","float",",","float",":","float","a","function","that","takes","value","to","the","left","and","to","the","right","of","t","according","to","the","`","endpoints","`",".","Alpha","is","the","fraction","of","distance","from","left","endpoint","to","right","endpoint","that","t","has","covered",".","See","linear_interpolation","for","example",".","outside_value",":","float","if","the","value","is","requested","outside","of","all","the","intervals","sepecified","in","`","endpoints","`","this","value","is","returned",".","If","None","then","AssertionError","is","raised","when","outside","value","is","requested","."]
code: def __init__(
      self,
      endpoints,
      interpolation=linear_interpolation,
      outside_value=None,
  ):
      """Piecewise schedule.
  
      endpoints: [(int, int)]
          list of pairs `(time, value)` meanining that schedule should output
          `value` when `t==time`. All the values for time must be sorted in
          an increasing order. When t is between two times, e.g. `(time_a, value_a)`
          and `(time_b, value_b)`, such that `time_a <= t < time_b` then value outputs
          `interpolation(value_a, value_b, alpha)` where alpha is a fraction of
          time passed between `time_a` and `time_b` for time `t`.
      interpolation: lambda float, float, float: float
          a function that takes value to the left and to the right of t according
          to the `endpoints`. Alpha is the fraction of distance from left endpoint to
          right endpoint that t has covered. See linear_interpolation for example.
      outside_value: float
          if the value is requested outside of all the intervals sepecified in
          `endpoints` this value is returned. If None then AssertionError is
          raised when outside value is requested.
      """
      idxes = [e[0] for e in endpoints]
      assert idxes == sorted(idxes)
      self._interpolation = interpolation
      self._outside_value = outside_value
      self._endpoints = endpoints
  
file_path: baselines/baselines/common/schedules.py
label_desc: Use image node_id 1 to create a new PiecewiseSchedule object from inherited base classes: object with example: obj = PiecewiseSchedule(endpoints, interpolation, outside_value)