#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.