(polys, K, eps=None, inf=None, sup=None, strict=False, basis=False, fast=False)
return sorted(I_neg + I_zero + I_pos)
Isolate real roots of a list of square-free polynomial using Vincent-Akritas-Strzebonski (VAS) CF approach.

       References:
       ===========
       1. Alkiviadis G. Akritas and Adam W. Strzebonski: A Comparative Study of Two Real Root Isolation Methods.
       Nonlinear Analysis: Modelling and Control, Vol. 10, No. 4, 297-304, 2005.
       2. Alkiviadis G. Akritas, Adam W. Strzebonski and Panagiotis S. Vigklas: Improving the Performance
       of the Continued Fractions Method Using New Bounds of Positive Roots.
       Nonlinear Analysis: Modelling and Control, Vol. 13, No. 3, 265-279, 2008.
Isolate real roots of a list of square-free polynomial using Vincent-Akritas-Strzebonski (VAS) CF approach.
Isolate real roots of a list of square - free polynomial using Vincent - Akritas - Strzebonski ( VAS ) CF approach .
def dup_isolate_real_roots_list(polys, K, eps=None, inf=None, sup=None, strict=False, basis=False, fast=False):
    """Isolate real roots of a list of square-free polynomial using Vincent-Akritas-Strzebonski (VAS) CF approach.

       References:
       ===========
       1. Alkiviadis G. Akritas and Adam W. Strzebonski: A Comparative Study of Two Real Root Isolation Methods.
       Nonlinear Analysis: Modelling and Control, Vol. 10, No. 4, 297-304, 2005.
       2. Alkiviadis G. Akritas, Adam W. Strzebonski and Panagiotis S. Vigklas: Improving the Performance
       of the Continued Fractions Method Using New Bounds of Positive Roots.
       Nonlinear Analysis: Modelling and Control, Vol. 13, No. 3, 265-279, 2008.
"""
    if K.is_QQ:
        K, F, polys = K.get_ring(), K, polys[:]

        for i, p in enumerate(polys):
            polys[i] = dup_clear_denoms(p, F, K, convert=True)[1]
    elif not K.is_ZZ:
        raise DomainError("isolation of real roots not supported over %s" % K)

    zeros, factors_dict = False, {}

    if (inf is None or inf <= 0) and (sup is None or 0 <= sup):
        zeros, zero_indices = True, {}

    for i, p in enumerate(polys):
        j, p = dup_terms_gcd(p, K)

        if zeros and j > 0:
            zero_indices[i] = j

        for f, k in dup_factor_list(p, K)[1]:
            f = tuple(f)

            if f not in factors_dict:
                factors_dict[f] = {i: k}
            else:
                factors_dict[f][i] = k

    factors_list = []

    for f, indices in factors_dict.items():
        factors_list.append((list(f), indices))

    I_neg, I_pos = _real_isolate_and_disjoin(factors_list, K, eps=eps,
        inf=inf, sup=sup, strict=strict, basis=basis, fast=fast)

    F = K.get_field()

    if not zeros or not zero_indices:
        I_zero = []
    else:
        if not basis:
            I_zero = [((F.zero, F.zero), zero_indices)]
        else:
            I_zero = [((F.zero, F.zero), zero_indices, [K.one, K.zero])]

    return sorted(I_neg + I_zero + I_pos)
def dup_isolate_real_roots_list ( polys , K , eps = None , inf = None , sup = None , strict = False , basis = False , fast = False ) : if K . is_QQ : K , F , polys = K . get_ring ( ) , K , polys [ : ] for i , p in enumerate ( polys ) : polys [ i ] = dup_clear_denoms ( p , F , K , convert = True ) [ 1 ] elif not K . is_ZZ : raise DomainError ( "isolation of real roots not supported over %s" % K ) zeros , factors_dict = False , { } if ( inf is None or inf <= 0 ) and ( sup is None or 0 <= sup ) : zeros , zero_indices = True , { } for i , p in enumerate ( polys ) : j , p = dup_terms_gcd ( p , K ) if zeros and j > 0 : zero_indices [ i ] = j for f , k in dup_factor_list ( p , K ) [ 1 ] : f = tuple ( f ) if f not in factors_dict : factors_dict [ f ] = { i : k } else : factors_dict [ f ] [ i ] = k factors_list = [ ] for f , indices in factors_dict . items ( ) : factors_list . append ( ( list ( f ) , indices ) ) I_neg , I_pos = _real_isolate_and_disjoin ( factors_list , K , eps = eps , inf = inf , sup = sup , strict = strict , basis = basis , fast = fast ) F = K . get_field ( ) if not zeros or not zero_indices : I_zero = [ ] else : if not basis : I_zero = [ ( ( F . zero , F . zero ) , zero_indices ) ] else : I_zero = [ ( ( F . zero , F . zero ) , zero_indices , [ K . one , K . zero ] ) ] return sorted ( I_neg + I_zero + I_pos )