#17895: Computing all roots is faster than computing a single one
-------------------------+-------------------------------------------------
   Reporter:  gagern     |            Owner:
       Type:  defect     |           Status:  new
   Priority:  major      |        Milestone:  sage-6.6
  Component:  number     |         Keywords:  qqbar polynomial_root roots
  fields                 |  performance
  Merged in:             |          Authors:
  Reviewers:             |  Report Upstream:  N/A
Work issues:             |           Branch:
     Commit:             |     Dependencies:
   Stopgaps:             |
-------------------------+-------------------------------------------------
 The following example comes from comment:27:ticket:16964 via
 comment:2:ticket:17886.

 {{{
 sage: x,y = polygens(QQ,"x,y")
 sage: p1 = x^5 + 6*x^4 - 42*x^3 - 142*x^2 + 467*x + 422
 sage: p2 = p1(x=(x-1)^2)
 sage: p3 = p2(x=x*y).resultant(p2,x).univariate_polynomial()
 sage: p4, = [f[0] for f in p3.factor() if f[0].degree() == 80]
 sage: ival = CIF((0.77, 0.78), (-0.08, -0.07))
 sage: %time z1, = [r for r in p4.roots(QQbar, False) if r in ival]
 CPU times: user 1.43 s, sys: 195 ms, total: 1.62 s
 Wall time: 1.47 s
 sage: %time z2 = QQbar.polynomial_root(p4, ival)
 CPU times: user 1min 5s, sys: 212 ms, total: 1min 5s
 Wall time: 1min 5s
 }}}

 The computation for `z1` works reasonably well and completes in under 2
 seconds, but the one for `z2` takes over a minute on my system. Which I
 find really strange, since computing all roots and then choosing the right
 one should be ''more'' work, not ''less'' than just computing a single
 one. Should we change `QQbar.polynomial_root` to go via the list of all
 roots, or is there a better solution?

--
Ticket URL: <http://trac.sagemath.org/ticket/17895>
Sage <http://www.sagemath.org>
Sage: Creating a Viable Open Source Alternative to Magma, Maple, Mathematica, 
and MATLAB

-- 
You received this message because you are subscribed to the Google Groups 
"sage-trac" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/sage-trac.
For more options, visit https://groups.google.com/d/optout.

Reply via email to