class_docstr: Base class for all MCMC `Reducer`s.
  
  This class defines the minimal requirements to implement a Markov chain Monte
  Carlo (MCMC) reducer. A reducer updates a streaming computation by reducing
  new samples to a summary statistic. `Reducer`s can be defined to return "side
  information" if desired, but they do not remember state. Hence, reducers
  should be seen as objects that hold metadata (i.e. shape and dtype of
  incoming samples) and all reducer method calls must be coupled with a state
  object, as first returned by the `initialize` method.
docstr: Takes one step of the `Reducer`.
  
  This is an abstract method and must be overridden by subclasses.
  
  Args:
    new_chain_state: Incoming chain state(s) with shape and dtype compatible
      with the `initial_chain_state` with which the `current_reducer_state`
      was produced by `initialize`.
    current_reducer_state: A `tuple`, `namedtuple` or `list` of `Tensor`s
      representing the current state of reduced statistics.
    previous_kernel_results: A (possibly nested) `tuple`, `namedtuple` or
      `list` of `Tensor`s representing internal calculations made in a related
      `TransitionKernel`. This allows for introspection of deeper layers of
      `TransitionKernel`s that have bearing to the nature of the updated
      reducer state (i.e. updating based on a value in the kernel results of
      some `TransitionKernel`).
  
  Returns:
    new_state: The new reducer state after updates. This has the same type and
      structure as `current_reducer_state`.
docstr_tok: ["Takes","one","step","of","the","`","Reducer","`",".","This","is","an","abstract","method","and","must","be","overridden","by","subclasses",".","Args",":","new_chain_state",":","Incoming","chain","state","(","s",")","with","shape","and","dtype","compatible","with","the","`","initial_chain_state","`","with","which","the","`","current_reducer_state","`","was","produced","by","`","initialize","`",".","current_reducer_state",":","A","`","tuple","`",",","`","namedtuple","`","or","`","list","`","of","`","Tensor","`","s","representing","the","current","state","of","reduced","statistics",".","previous_kernel_results",":","A","(","possibly","nested",")","`","tuple","`",",","`","namedtuple","`","or","`","list","`","of","`","Tensor","`","s","representing","internal","calculations","made","in","a","related","`","TransitionKernel","`",".","This","allows","for","introspection","of","deeper","layers","of","`","TransitionKernel","`","s","that","have","bearing","to","the","nature","of","the","updated","reducer","state","(","i.e",".","updating","based","on","a","value","in","the","kernel","results","of","some","`","TransitionKernel","`",")",".","Returns",":","new_state",":","The","new","reducer","state","after","updates",".","This","has","the","same","type","and","structure","as","`","current_reducer_state","`","."]
code: def one_step(
      self,
      new_chain_state,
      current_reducer_state,
      previous_kernel_results,
  ):
      """Takes one step of the `Reducer`.
  
      This is an abstract method and must be overridden by subclasses.
  
      Args:
        new_chain_state: Incoming chain state(s) with shape and dtype compatible
          with the `initial_chain_state` with which the `current_reducer_state`
          was produced by `initialize`.
        current_reducer_state: A `tuple`, `namedtuple` or `list` of `Tensor`s
          representing the current state of reduced statistics.
        previous_kernel_results: A (possibly nested) `tuple`, `namedtuple` or
          `list` of `Tensor`s representing internal calculations made in a related
          `TransitionKernel`. This allows for introspection of deeper layers of
          `TransitionKernel`s that have bearing to the nature of the updated
          reducer state (i.e. updating based on a value in the kernel results of
          some `TransitionKernel`).
  
      Returns:
        new_state: The new reducer state after updates. This has the same type and
          structure as `current_reducer_state`.
      """
  
imports: import abc
  import six
label_desc: Use image node_id 2 for calling the Reducer obj's underlying member method code with example usage: obj.one_step(new_chain_state, current_reducer_state, previous_kernel_results) without return types