#17886: Faster qqbar operations using resultants
-------------------------------------+-------------------------------------
       Reporter:  gagern             |        Owner:
           Type:  enhancement        |       Status:  new
       Priority:  major              |    Milestone:  sage-6.6
      Component:  number fields      |   Resolution:
       Keywords:  qqbar resultant    |    Merged in:
  exactify minpoly                   |    Reviewers:
        Authors:  Martin von Gagern  |  Work issues:
Report Upstream:  N/A                |       Commit:
         Branch:                     |  12a1053f78c9efee9f3e6c88eb2c1c89d2db4312
  u/gagern/ticket/17886              |     Stopgaps:
   Dependencies:                     |
-------------------------------------+-------------------------------------

Comment (by gagern):

 Replying to [comment:2 gagern]:
 > The division `r1/r2` for the example from the ticket description still
 takes extremely long. Surprisingly, the step which takes so long is not
 the computation of the resultant, its factors or its roots. No, it's the
 `candidate.exactify()` step which turns an `ANRoot` element into an
 `ANExtensionElement`. The `do_polred` in there is taking ages. Any
 suggestions how that might be avoided? It's “only” a degree 80 polynomial
 we're dealing with.

 I compared this with Mathematica. Apart from the fact that I prefer Sage's
 way of presenting these numbers, I first
 [http://mathematica.stackexchange.com/q/76413/8395 couldn't get
 Mathematica] to do elementary arithmetic on these two numbers at all. But
 using [http://mathematica.stackexchange.com/a/76423/8395 a different
 approach], I managed to do so. In Mathematica the division takes about
 twice as long as the other three operations, which makes sense considering
 that the resulting minimal polynomial has twice the degree. But it's only
 a distinction between 0.1 and 0.2 seconds, so there should be no
 mathematically unavoidable reason why Sage takes as long as it takes.

 Should we try to avoid polred completely? I have the impression that this
 ticket here moves the focus away from “an algebraic number field extension
 and some polynomial in its generator” towards “a defining polynomial and
 an isolating interval”. The change is gradual, and we definitely want to
 keep the former aspect available if we want to simplify cases where all
 operations take place in the same number field. But since we no longer use
 unions for all operations, the nice and small description of the field
 generator appears to be less important. And the way I understand it,
 `do_polred` is responsible for finding such a nice and small generator.
 Should I try omitting that?

--
Ticket URL: <http://trac.sagemath.org/ticket/17886#comment:8>
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