#8327: Implement the universal cyclotomic field, using Zumbroich basis
-----------------------------+----------------------------------------------
   Reporter:  nthiery        |       Owner:  davidloeffler                    
       Type:  enhancement    |      Status:  new                              
   Priority:  major          |   Milestone:                                   
  Component:  number fields  |    Keywords:  Cyclotomic field, Zumbroich basis
     Author:                 |    Upstream:  N/A                              
   Reviewer:                 |      Merged:                                   
Work_issues:                 |  
-----------------------------+----------------------------------------------
 Here is a user story for this feature.

 We construct the universal cyclotomic field::

 {{{
     sage: F = CyclotomicField()
 }}}

 This field contains all roots of unity:

 {{{
     sage: z3 = F.zeta(3)
     sage: z3
     E(3)
     sage: z3^3
     1
     sage: z5 = F.zeta(5)
     sage: z5
     E(5)
     sage: z5^5
     1
 }}}

 It comes equipped with a distinguished basis, called the Zumbroich
 basis, which consists of a strict subset of all roots of unity::

 {{{
     sage: z9 = F.zeta(9)
     -E(9)^4-E(9)^7
     sage: z3 * z5
     sage: E(15)^8
     sage: z3 + z5
     -E(15)^2-2*E(15)^8-E(15)^11-E(15)^13-E(15)^14
     sage: [z9^i for i in range(0,9)]
     [1, -E(9)^4-E(9)^7, E(9)^2, E(3), E(9)^4, E(9)^5, E(3)^2, E(9)^7,
 -E(9)^2-E(9)^5 ]
 }}}

 Note: we might want some other style of pretty printing.

 The following is called AsRootOfUnity in Chevie; we might want instead
 to use (z1*z3).multiplicative_order()::

 {{{
     sage: (z1*z3).as_root_of_unity()
     11/18
 }}}

 Depending on the progress on #6391 (lib gap), we might want to
 implement this directly in Sage or to instead expose GAP's
 implementation, creating elements as in::

 {{{
 sage: z5 = gap("E(5)")
 sage: z3 = gap("E(3)")
 sage: z3+z5
 -E(15)^2-2*E(15)^8-E(15)^11-E(15)^13-E(15)^14
 }}}

-- 
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/8327>
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 post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/sage-trac?hl=en.

Reply via email to