def dup_inner_isolate_positive_roots(f, K, eps=None, inf=None, sup=None, fast=False, mobius=False):
 if ((sup is not None) and (sup < 0)):
  return []
 roots = dup_inner_isolate_real_roots(f, K, eps=eps, fast=fast)
 (F, results) = (K.get_field(), [])
 if ((inf is not None) or (sup is not None)):
  for (f, M) in roots:
   result = _discard_if_outside_interval(f, M, inf, sup, K, False, fast, mobius)
   if (result is not None):
    results.append(result)
 elif (not mobius):
  for (f, M) in roots:
   (u, v) = _mobius_to_interval(M, F)
   results.append((u, v))
 else:
  results = roots
 return results

def dup_inner_isolate_positive_roots ( f , K , eps = None , inf = None , sup = None , fast = False , mobius = False ) : if ( ( sup is not None ) and ( sup < 0 ) ) : return [ ] roots = dup_inner_isolate_real_roots ( f , K , eps = eps , fast = fast ) ( F , results ) = ( K . get_field ( ) , [ ] ) if ( ( inf is not None ) or ( sup is not None ) ) : for ( f , M ) in roots : result = _discard_if_outside_interval ( f , M , inf , sup , K , False , fast , mobius ) if ( result is not None ) : results . append ( result ) elif ( not mobius ) : for ( f , M ) in roots : ( u , v ) = _mobius_to_interval ( M , F ) results . append ( ( u , v ) ) else : results = roots return results
iteratively compute disjoint positive root isolation intervals .