code: def update_hslice(self, blob):
          
  
          nmove, nreflect = blob['nmove'], blob['nreflect']
          ncontract = blob.get('ncontract', 0)
          fmove = (1. * nmove) / (nmove + nreflect + ncontract + 2)
          norm = max(self.fmove, 1. - self.fmove)
          self.scale *= math.exp((fmove - self.fmove) / norm)
docs: Update the Hamiltonian slice proposal scale based
          on the relative amount of time spent moving vs reflecting.