Changes between Initial Version and Version 11 of Ticket #8327


Ignore:
Timestamp:
10/17/10 14:40:25 (10 years ago)
Author:
stumpc5
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • Ticket #8327

    • Property Cc sage-combinat cwitty added
    • Property Status changed from new to needs_review
    • Property Authors changed from to Christian Stump
  • Ticket #8327 – Description

    initial v11  
    1 Here is a user story for this feature.
    2 
    3 We construct the universal cyclotomic field::
     1This patch provides the universal cyclotomic field
    42
    53{{{
    6     sage: F = CyclotomicField()
     4    sage: UCF
     5    Universal Cyclotomic Field endowed with the Zumbroich basis
    76}}}
    87
    9 This field contains all roots of unity:
     8in sage. This field is the smallest field extension of QQ which contains all roots of unity.
    109
    1110{{{
    12     sage: z3 = F.zeta(3)
    13     sage: z3
     11    sage: E(3); E(3)^3
    1412    E(3)
    15     sage: z3^3
    1613    1
    17     sage: z5 = F.zeta(5)
    18     sage: z5
    19     E(5)
    20     sage: z5^5
     14    sage: E(6); E(6)^2; E(6)^3; E(6)^6
     15    -E(3)^2
     16    E(3)
     17    -1
    2118    1
    2219}}}
    2320
    2421It comes equipped with a distinguished basis, called the Zumbroich
    25 basis, which consists of a strict subset of all roots of unity::
     22basis, which gives, for any n, A basis of QQ( E(n) ) over QQ, where (n,k) stands for E(n)^k.
    2623
    2724{{{
    28     sage: z9 = F.zeta(9)
    29     -E(9)^4-E(9)^7
    30     sage: z3 * z5
    31     sage: E(15)^8
    32     sage: z3 + z5
    33     -E(15)^2-2*E(15)^8-E(15)^11-E(15)^13-E(15)^14
    34     sage: [z9^i for i in range(0,9)]
    35     [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 ]
     25    sage: UCF.zumbroich_basis(6)
     26    [(6, 2), (6, 4)]
    3627}}}
    3728
    38 Note: we might want some other style of pretty printing.
    39 
    40 The following is called AsRootOfUnity in Chevie; we might want instead
    41 to use (z1*z3).multiplicative_order()::
     29As seen for E(6), every element in UCF is expressed in terms of the smallest cyclotomic field in which it is contained.
    4230
    4331{{{
    44     sage: (z1*z3).as_root_of_unity()
    45     11/18
     32sage: E(6)*E(4)
     33-E(12)^11
    4634}}}
    4735
    48 Depending on the progress on #6391 (lib gap), we might want to
    49 implement this directly in Sage or to instead expose GAP's
    50 implementation, creating elements as in::
     36It provides arithmetics on UCF as addition, multiplication, and inverses:
    5137
    5238{{{
    53 sage: z5 = gap("E(5)")
    54 sage: z3 = gap("E(3)")
    55 sage: z3+z5
    56 -E(15)^2-2*E(15)^8-E(15)^11-E(15)^13-E(15)^14
     39    sage: E(3)+E(4)
     40    E(12)^4 - E(12)^7 - E(12)^11
     41    sage: E(3)*E(4)
     42    E(12)^7
     43    sage: (E(3)+E(4)).inverse()
     44    E(12)^4 + E(12)^8 + E(12)^11
     45    sage: (E(3)+E(4))*(E(3)+E(4)).inverse()
     46    1
    5747}}}
     48
     49And also things like Galois conjugates.
     50
     51{{{
     52    sage: (E(3)+E(4)).galois_conjugates()
     53    [E(12)^4 - E(12)^7 - E(12)^11, -E(12)^7 + E(12)^8 - E(12)^11, E(12)^4 + E(12)^7 + E(12)^11, E(12)^7 + E(12)^8 + E(12)^11]
     54}}}
     55
     56The ticket does not use the gap interface; it depends on #9651 (Addition of combinatorial free module).