Ticket #2217 (needs_work enhancement)

Opened 5 years ago

Last modified 3 months ago

splitting field function for number fields

Reported by: jason Owned by: davidloeffler
Priority: major Milestone: sage-5.10
Component: number fields Keywords:
Cc: abrochard Work issues:
Report Upstream: N/A Reviewers:
Authors: Jeroen Demeyer Merged in:
Dependencies: Stopgaps:

Description (last modified by jdemeyer) (diff)

We should add splitting_field() function: given a polynomial, compute the number field generated by all the roots.

See the thread at  http://groups.google.com/group/sage-devel/browse_thread/thread/32fe12de12d5f6a5/c91753b5e65fe7b9#c91753b5e65fe7b9

Attachments

2217_splitting_field.patch Download (26.0 KB) - added by jdemeyer 19 months ago.
Add splitting_field() function

Change History

comment:1 Changed 5 years ago by cwitty

Note that this approach does not give the splitting field. It gives a field containing at least one root of each factor of the original polynomial, but that still might not be the splitting field.

Later in the thread mentioned above, I give a technique using internals of qqbar which I believe does give the splitting field (perhaps inefficiently).

comment:2 Changed 4 years ago by davidloeffler

  • Owner changed from was to davidloeffler
  • Component changed from number theory to number fields

comment:3 Changed 19 months ago by jdemeyer

  • Dependencies set to #11904, #11995
  • Report Upstream set to N/A

comment:4 Changed 19 months ago by jdemeyer

  • Description modified (diff)

Changed 19 months ago by jdemeyer

Add splitting_field() function

comment:5 Changed 9 months ago by abrochard

  • Cc abrochard added

comment:6 Changed 8 months ago by roed

Jeroen, what is the status of the patch here?

comment:7 Changed 8 months ago by jdemeyer

I totally forgot about this. I might be good to revisit this.

comment:8 Changed 8 months ago by jdemeyer

  • Status changed from new to needs_review
  • Dependencies #11904, #11995 deleted
  • Authors set to Jeroen Demeyer

I originally had plans for some speed-ups, but since the code works fine, I guess it can be reviewed.

comment:9 Changed 3 months ago by mmanes

  • Status changed from needs_review to needs_work

I ran all standard tests, and everything passed.

I was trying to test functionality, but I'm confused by the differences file. All of the old examples seem to work, and none of the new ones work.

In the first example, I get:

sage: G = NumberField(x^3 - x - 1,'a').galois_closure('b').galois_group(); G

Galois group of Number Field in b with defining polynomial x^6 - 14*x^4
+ 20*x^3 + 49*x^2 - 140*x + 307

The expected output seems to have been changed from this result to

Number Field in b with defining polynomial x^6 - 6*x^4 + 9*x^2 + 23 

These fields are isomorphic, but I've tried the example on three machines, and all of them give the first thing as the output.

Similarly, the second example doesn't work:

sage: G.subgroup([ G(1), G([(1,2,3),(4,5,6)]), G([(1,3,2),(4,6,5)]) ]) 

Traceback (click to the left of this block for traceback)
...
TypeError: permutation [(1, 2, 3), (4, 5, 6)] not in Galois group of
Number Field in b with defining polynomial x^6 - 14*x^4 + 20*x^3 +
49*x^2 - 140*x + 307

But the original example (now deleted) does work:

sage: G.subgroup([ G(1), G([(1,5,2),(3,4,6)]), G([(1,2,5),(3,6,4)])])

Subgroup [(), (1,5,2)(3,4,6), (1,2,5)(3,6,4)] of Galois group of Number
Field in b with defining polynomial x^6 - 14*x^4 + 20*x^3 + 49*x^2 -
140*x + 307

Note: See TracTickets for help on using tickets.