class_docstr: Appropriately discards samples to conduct thinning and burn-in.
  
  `SampleDiscardingKernel` is a composable `TransitionKernel` that
  applies thinning and burn-in to samples returned by its
  `inner_kernel`. All Transition Kernels wrapping it will only
  see non-discarded samples.
  
  The burn-in step conducts both burn-in and one step of thinning.
  In other words, the first call to `one_step` will skip
  `num_burnin_steps + num_steps_between_results` samples. All
  subsequent calls skip only `num_steps_between_results` samples.
class_docstr_tok: ["Appropriately","discards","samples","to","conduct","thinning","and","burn-in",".","`","SampleDiscardingKernel","`","is","a","composable","`","TransitionKernel","`","that","applies","thinning","and","burn-in","to","samples","returned","by","its","`","inner_kernel","`",".","All","Transition","Kernels","wrapping","it","will","only","see","non-discarded","samples",".","The","burn-in","step","conducts","both","burn-in","and","one","step","of","thinning",".","In","other","words",",","the","first","call","to","`","one_step","`","will","skip","`","num_burnin_steps","+","num_steps_between_results","`","samples",".","All","subsequent","calls","skip","only","`","num_steps_between_results","`","samples","."]
docstr: Collects one non-discarded chain state.
  
  Args:
    current_state: `Tensor` or Python `list` of `Tensor`s
      representing the current state(s) of the Markov chain(s),
    previous_kernel_results: `collections.namedtuple` containing `Tensor`s
      representing values from previous calls to this function (or from the
      `bootstrap_results` function).
    seed: PRNG seed; see `tfp.random.sanitize_seed` for details.
  
  Returns:
    new_chain_state: Newest non-discarded MCMC chain state drawn from
      the `inner_kernel`.
    kernel_results: `collections.namedtuple` of internal calculations used to
      advance the chain.
docstr_tok: ["Collects","one","non-discarded","chain","state",".","Args",":","current_state",":","`","Tensor","`","or","Python","`","list","`","of","`","Tensor","`","s","representing","the","current","state","(","s",")","of","the","Markov","chain","(","s",")",",","previous_kernel_results",":","`","collections.namedtuple","`","containing","`","Tensor","`","s","representing","values","from","previous","calls","to","this","function","(","or","from","the","`","bootstrap_results","`","function",")",".","seed",":","PRNG","seed",";","see","`","tfp.random.sanitize_seed","`","for","details",".","Returns",":","new_chain_state",":","Newest","non-discarded","MCMC","chain","state","drawn","from","the","`","inner_kernel","`",".","kernel_results",":","`","collections.namedtuple","`","of","internal","calculations","used","to","advance","the","chain","."]
code: def one_step(self, current_state, previous_kernel_results, seed=None):
      """Collects one non-discarded chain state.
  
      Args:
        current_state: `Tensor` or Python `list` of `Tensor`s
          representing the current state(s) of the Markov chain(s),
        previous_kernel_results: `collections.namedtuple` containing `Tensor`s
          representing values from previous calls to this function (or from the
          `bootstrap_results` function).
        seed: PRNG seed; see `tfp.random.sanitize_seed` for details.
  
      Returns:
        new_chain_state: Newest non-discarded MCMC chain state drawn from
          the `inner_kernel`.
        kernel_results: `collections.namedtuple` of internal calculations used to
          advance the chain.
      """
      with tf.name_scope(
          mcmc_util.make_name(
              self.name, "sample_discarding_kernel", "one_step"
          )
      ):
          new_chain_state, inner_kernel_results = step.step_kernel(
              num_steps=self._num_samples_to_skip(
                  previous_kernel_results.call_counter
              )
              + 1,
              current_state=current_state,
              previous_kernel_results=previous_kernel_results.inner_results,
              kernel=self.inner_kernel,
              return_final_kernel_results=True,
              seed=seed,
              name=self.name,
          )
          new_kernel_results = SampleDiscardingKernelResults(
              previous_kernel_results.call_counter + 1,
              inner_kernel_results,
          )
          return new_chain_state, new_kernel_results
  
imports: import collections
  import tensorflow.compat.v2
  from tensorflow_probability.python.experimental.mcmc import step
  from tensorflow_probability.python.internal import prefer_static
  from tensorflow_probability.python.mcmc import kernel
  from tensorflow_probability.python.mcmc.internal import util
label_desc: Use image node_id 3 for calling the SampleDiscardingKernel obj's underlying member method code with example usage: obj.one_step(current_state, previous_kernel_results, seed) and returns: new_chain_state,  new_kernel_results