Then for each interval in the list, the algorithm remove it from the list; if the number of sign variations of the coefficients of is zero, there is no root in the interval, and one passes to the next interval. If the number of sign variations is one, the interval defined by formula_15 and formula_16 is an isolating interval. Otherwise, one chooses a positive real number for dividing the interval into and , and, for each subinterval, one composes with a Möbius transformation that maps the interval onto , for getting two new intervals to be added to the list. In pseudocode, this gives the following, where denotes the number of sign variations of the coefficients of the polynomial . The different variants of the algorithm depend essentially on the choice of . In Vincent's papers, and in Uspensky's book, one has always , with the difference that Uspensky did not use Budan's theorem for avoiding further bisections of the interval associated to   The drawback of always choosing is that one has to do many successive changes of variable of the form . These may be replaced by a single change of variable , but, nevertheless, one has to do the intermediate changes of variables for applying Budan's theorem. A way for improving the efficiency of the algorithm is to take for a lower bound of the positive real roots, computed from the coefficients of the polynomial (see Properties of polynomial roots for such bounds). The bisection method consists roughly of starting from an interval containing all real roots of a polynomial, and divides it recursively into two parts until getting eventually intervals that contain either zero or one root. The starting interval may be of the form , where is an upper bound on the absolute values of the roots, such as those that are given in . For technical reasons (simpler changes of variable, simpler complexity analysis, possibility of taking advantage of the binary analysis of computers), the algorithms are generally presented as starting with the interval . There is no loss of generality, as the changes of variables and move respectively the positive and the negative roots in the interval . (The single changes variable may also be used.) The method requires an algorithm for testing whether an interval has zero, one, or possibly several roots, and for warranting termination, this testing algorithm must excludes the possibility of getting infinitely many times the output "possibility of several roots". Sturm's theorem and Vincent's auxiliary theorem provide such convenient tests. As the use Descartes' rule of signs and Vincent's auxiliary theorem is much more computationally efficient than the use of Sturm's theorem, only the former is described in this section.