This method calls
extendInternal at least once. It
divides the current progress interval [from the last call's
newProgress to this call's
newProgress ]
into one or more subintervals by splitting at any point which
is an interval boundary if there are any such points. It
then calls
extendInternal for each subinterval, or the
whole interval if there are no splitting points.
For example, if the value was
300 last time with
0.3 progress, and count is
5, and you get a
new reading with the variable at
700 and progress at
0.7, you get three calls to
extendInternal:
one extending from progress
0.3 to
0.4 [the
next boundary] with a value of
400, the next one
through
0.6 with a value of
600, and finally
one at
700 with a progress of
0.7 .