code: def update(self, accept_stat, tune):
      if not tune:
          self._tuned_stats.append(accept_stat)
          return
  
      count, k, t0 = self._count, self._k, self._t0
      w = 1.0 / (count + t0)
      self._hbar = (1 - w) * self._hbar + w * (
          self._target - accept_stat
      )
  
      self._log_step = (
          self._mu - self._hbar * np.sqrt(count) / self._gamma
      )
      mk = count**-k
      self._log_bar = mk * self._log_step + (1 - mk) * self._log_bar
      self._count += 1
  
file_path: pymc/pymc/step_methods/step_sizes.py
imports: import numpy
  from scipy import stats
  from pymc.stats.convergence import SamplerWarning, WarningType
label_desc: Use image node_id 4 for calling the DualAverageAdaptation obj's underlying member method code with example usage: obj.update(accept_stat, tune) without return types