Ticket #1359 (needs_info enhancement)
implement cyclotomic norm residues
| Reported by: | was | Owned by: | davidloeffler |
|---|---|---|---|
| Priority: | major | Milestone: | sage-5.10 |
| Component: | number fields | Keywords: | |
| Cc: | Work issues: | ||
| Report Upstream: | N/A | Reviewers: | |
| Authors: | Merged in: | ||
| Dependencies: | Stopgaps: |
Description
Here's the code, basically:
bug day 6 -- #1342 system:sage
K.<zeta> = CyclotomicField(7)
def norm_symbol_prime(a, P):
K = P.number_field()
zeta = K.gen()
n = K.zeta_order()
exponent = (1/n) * ( P.norm() - 1)
exponent = ZZ(exponent)
FF = K.residue_field(P)
aa = FF(a)
b = FF(a)^exponent
zeta_mod = FF(zeta)
# Find power m of zeta_mod that is equal to b, then
# return zeta^m
m = 0
w = FF(1)
while w != b:
w = w * zeta_mod
m += 1
assert m <= n, "bug in norm_symbol_prime"
return zeta^m
def norm_symbol(a, b):
F = K.fractional_ideal([b]).factor()
return prod([norm_symbol_prime(a, P)^e for P, e in F],
K(1))
norm_symbol(zeta^3, 13*zeta) /// -zeta^5 - zeta^4 - zeta^3 - zeta^2 - zeta - 1
norm_symbol(zeta^7, K(11)) /// 1
norm_symbol((1+zeta)^2, 23*zeta) /// zeta^4
Change History
Note: See
TracTickets for help on using
tickets.
