#14300: CyclotomicField's is_isomorphic is mathematically incorrect
-----------------------------------+----------------------------------------
       Reporter:  robharron        |         Owner:  davidloeffler
           Type:  defect           |        Status:  needs_work   
       Priority:  critical         |     Milestone:  sage-5.10    
      Component:  number fields    |    Resolution:               
       Keywords:  CyclotomicField  |   Work issues:               
Report Upstream:  N/A              |     Reviewers:               
        Authors:  Robert Harron    |     Merged in:               
   Dependencies:                   |      Stopgaps:               
-----------------------------------+----------------------------------------
Changes (by fwclarke):

  * status:  needs_review => needs_work


Comment:

 I was responsible, in #3533, for the faulty code for
 `NumberField_cyclotomic.is_isomorphic`.  There should have been first a
 check that the absolute degrees were equal.  I apologise for my stupid
 mistake.

 However the reason for having a separate method for cyclotomic fields was
 that it can be '''much''' faster than the generic code.  Thus with
 {{{
 sage: C = CyclotomicField(39)
 sage: K = NumberField(cyclotomic_polynomial(39), 'a')
 }}}
 I find that in Sage-5.8
 {{{
 C.is_isomorphic(K)
 }}}
 takes 0.684 seconds, while
 {{{
 C.pari_polynomial().nfisisom(K.pari_polynomial())
 }}}
 (which is the essential part of the generic `is_isomorphic`) takes 5.007
 seconds.  The difference is even more marked for higher degrees.

 Thus I think that the only change to the existing code that is needed is
 to add the two extra lines:
 {{{
         if self.degree() != other.absolute_degree():
             return False
 }}}
 Plus, of course, the new doctests.

-- 
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/14300#comment:7>
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?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to