s follows:
   first, the input step size is used to determine the time
   separation at which the visibility state will be sampled.
   Starting at the left endpoint of an interval, samples will be
   taken at each step. If a state change is detected, a root has
   been bracketed; at that point, the &quot;root&quot;--the time at which the
   state change occurs---is found by a refinement process, for
   example, by a binary search.

   Note that the optimal choice of step size depends on the lengths
   of th