docstr: Interpolate through the next time point, integrating as necessary.
docstr_tok: ["Interpolate","through","the","next","time","point",",","integrating","as","necessary","."]
code: def _advance(self, next_t):
      """Interpolate through the next time point, integrating as necessary."""
      n_steps = 0
      while next_t > self.rk_state.t1:
          assert (
              n_steps < self.max_num_steps
          ), "max_num_steps exceeded ({}>={})".format(
              n_steps, self.max_num_steps
          )
          self.rk_state = self._adaptive_step(self.rk_state)
          n_steps += 1
      return _interp_evaluate(
          self.rk_state.interp_coeff,
          self.rk_state.t0,
          self.rk_state.t1,
          next_t,
      )
  
imports: import bisect
  import collections
  import torch
  from .event_handling import find_event
  from .interp import _interp_evaluate, _interp_fit
  from .misc import _compute_error_ratio, _select_initial_step, _optimal_step_size
  from .misc import Perturb
  from .solvers import AdaptiveStepsizeEventODESolver
label_desc: Use image node_id 4 for calling the RKAdaptiveStepsizeODESolver obj's underlying member method code with example usage: obj._advance(next_t) and returns: _interp_evaluate