code: def reset(self, new_damping=None):
          
          self._num_iter = 0
          self._inner_run_counter = 0
          self._J_update_counter = self.update_J_frequency
          self._fresh_JTJ = False
          self._has_run = False
          if new_damping is not None:
              self.damping = np.array(new_damping).astype('float')
          self._set_err_paramvals()
docs: Keeps all user supplied options the same, but resets counters etc.