  Let f be a univariate polynomial with real coefficients, f in R[X].
Subdivision algorithms based on algebraic techniques (e.g., Sturm or Descartes
methods) are widely used for isolating the real roots of f in a given interval.
In this paper, we consider a simple subdivision algorithm whose primitives are
purely numerical (e.g., function evaluation). The complexity of this algorithm
is adaptive because the algorithm makes decisions based on local data. The
complexity analysis of adaptive algorithms (and this algorithm in particular)
is a new challenge for computer science. In this paper, we compute the size of
the subdivision tree for the SqFreeEVAL algorithm.
  The SqFreeEVAL algorithm is an evaluation-based numerical algorithm which is
well-known in several communities. The algorithm itself is simple, but prior
attempts to compute its complexity have proven to be quite technical and have
yielded sub-optimal results. Our main result is a simple O(d(L+ln d)) bound on
the size of the subdivision tree for the SqFreeEVAL algorithm on the benchmark
problem of isolating all real roots of an integer polynomial f of degree d and
whose coefficients can be written with at most L bits.
  Our proof uses two amortization-based techniques: First, we use the algebraic
amortization technique of the standard Mahler-Davenport root bounds to
interpret the integral in terms of d and L. Second, we use a continuous
amortization technique based on an integral to bound the size of the
subdivision tree. This paper is the first to use the novel analysis technique
of continuous amortization to derive state of the art complexity bounds.
