class_docstr: Nested sampler with reactive exploration strategy.
  
  Storage & resume capable, optionally MPI parallelised.
class_docstr_tok: ["Nested","sampler","with","reactive","exploration","strategy",".","Storage","&","resume","capable",",","optionally","MPI","parallelised","."]
docstr: Check if integration is done.
  
  Returns range where more sampling is needed
  
  Returns
  --------
  Llo: float
      lower log-likelihood bound, nan if done
  Lhi: float
      lower log-likelihood bound, nan if done
  
  Parameters
  -----------
  Lmin: float
      current loglikelihood threshold
  parallel_values: array of floats
      loglikelihoods of live points
  main_iterator: BreadthFirstIterator
      current tree exploration iterator
  minimal_widths: list
      current width required
  frac_remain: float
      maximum fraction of integral in remainder for termination
  Lepsilon: float
      loglikelihood accuracy threshold
docstr_tok: ["Check","if","integration","is","done",".","Returns","range","where","more","sampling","is","needed","Returns","--","--","--","--","Llo",":","float","lower","log-likelihood","bound",",","nan","if","done","Lhi",":","float","lower","log-likelihood","bound",",","nan","if","done","Parameters","--","--","--","--","--","-","Lmin",":","float","current","loglikelihood","threshold","parallel_values",":","array","of","floats","loglikelihoods","of","live","points","main_iterator",":","BreadthFirstIterator","current","tree","exploration","iterator","minimal_widths",":","list","current","width","required","frac_remain",":","float","maximum","fraction","of","integral","in","remainder","for","termination","Lepsilon",":","float","loglikelihood","accuracy","threshold"]
code: def _adaptive_strategy_advice(
      self,
      Lmin,
      parallel_values,
      main_iterator,
      minimal_widths,
      frac_remain,
      Lepsilon,
  ):
      """Check if integration is done.
  
      Returns range where more sampling is needed
  
      Returns
      --------
      Llo: float
          lower log-likelihood bound, nan if done
      Lhi: float
          lower log-likelihood bound, nan if done
  
      Parameters
      -----------
      Lmin: float
          current loglikelihood threshold
      parallel_values: array of floats
          loglikelihoods of live points
      main_iterator: BreadthFirstIterator
          current tree exploration iterator
      minimal_widths: list
          current width required
      frac_remain: float
          maximum fraction of integral in remainder for termination
      Lepsilon: float
          loglikelihood accuracy threshold
      """
      Ls = parallel_values.copy()
      Ls.sort()
      # Ls = [node.value] + [n.value for rootid2, n in parallel_nodes]
      Lmax = Ls[-1]
      Lmin = Ls[0]
  
      # all points the same, stop
      if Lmax - Lmin < Lepsilon:
          return np.nan, np.nan
  
      # max remainder contribution is Lmax + weight, to be added to main_iterator.logZ
      # the likelihood that would add an equal amount as main_iterator.logZ is:
      logZmax = main_iterator.logZremain
      Lnext = (
          logZmax
          - (main_iterator.logVolremaining + log(frac_remain))
          - log(len(Ls))
      )
      L1 = Ls[1] if len(Ls) > 1 else Ls[0]
      Lmax1 = np.median(Ls)
      Lnext = max(min(Lnext, Lmax1), L1)
  
      # if the remainder dominates, return that range
      if main_iterator.logZremain > main_iterator.logZ:
          return Lmin, Lnext
  
      if main_iterator.remainder_fraction > frac_remain:
          return Lmin, Lnext
  
      return np.nan, np.nan
  
imports: from __future__ import print_function, division
  import os
  import sys
  import csv
  import json
  import operator
  import time
  import warnings
  from numpy import log, exp, logaddexp
  import numpy
  from .utils import create_logger, make_run_dir, resample_equal, vol_prefactor, vectorize, listify
  from .utils import is_affine_transform, normalised_kendall_tau_distance, distributed_work_chunk_size
  from ultranest.mlfriends import MLFriends, AffineLayer, ScalingLayer, find_nearby, WrappingEllipsoid, RobustEllipsoidRegion
  from .store import HDF5PointStore, TextPointStore, NullPointStore
  from .viz import get_default_viz_callback
  from .ordertest import UniformOrderAccumulator
  from .netiter import PointPile, SingleCounter, MultiCounter, BreadthFirstIterator, TreeNode, count_tree_between, find_nodes_before, logz_sequence
  from .netiter import dump_tree, combine_results
  from .hotstart import get_auxiliary_contbox_parameterization
label_desc: Use image node_id 8 for calling the ReactiveNestedSampler obj's underlying member method code with example usage: obj._adaptive_strategy_advice(Lmin, parallel_values, main_iterator, minimal_widths, frac_remain, Lepsilon) and returns: np,  np, np,  np, Lmin,  Lnext, Lmin,  Lnext