Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
Download
161 views
##################################################################### # Gauss Sums # # Theory: g_m(c)=Sum c(x) zeta(mx); m=1 => g_m(c)=c(m^(-1)) g(c) # where c:Fp^x -> Q(zeta(p-) # SAGE: g(c): c.gauss_sum() ##################################################################### G = DirichletGroup(13); G
Group of Dirichlet characters of modulus 13 over Cyclotomic Field of order 12 and degree 4
# Pick a Dirichlet character e = G.0; e # This Dirichlet character is a generator, bcause x=2 generates Fp*
Dirichlet character modulo 13 of conductor 13 mapping 2 |--> zeta12
# Computes the Gauss sums g=e.gauss_sum(); g # It is the basic Gauss sum corresponding to m=1 above
-zeta156^46 + zeta156^45 + zeta156^42 + zeta156^41 + 2*zeta156^40 + zeta156^37 - zeta156^36 - zeta156^34 - zeta156^33 - zeta156^31 + 2*zeta156^30 + zeta156^28 - zeta156^24 - zeta156^22 + zeta156^21 + zeta156^20 - zeta156^19 + zeta156^18 - zeta156^16 - zeta156^15 - 2*zeta156^14 - zeta156^10 + zeta156^8 + zeta156^7 + zeta156^6 + zeta156^5 - zeta156^4 - zeta156^2 - 1
# Note: why zeta156 !? [see below after Example 2] # The norm of Gauss sums is square root of the prime modulus # |g|^2=p factor(norm(g))
13^24
# Example 2 DP=DirichletGroup(5); DP
Group of Dirichlet characters of modulus 5 over Cyclotomic Field of order 4 and degree 2
e=DP.0; e
Dirichlet character modulo 5 of conductor 5 mapping 2 |--> zeta4
g=e.gauss_sum(); g
zeta20^7 + zeta20^6 + zeta20^4 - zeta20^3
# SAGE computes Gauss sums as elements of Fp[zeta(p-1)] # which is viewed as elements of Q(zeta(p*(p-1))) # Example: p=13 => p(p-1)=156; p=5 => p(p-1)=20 #
# Example 3 p=3; p DP=DirichletGroup(3); DP
3 Group of Dirichlet characters of modulus 3 over Cyclotomic Field of order 2 and degree 1
c=DP[0]; c print "Gauss sum ", c.gauss_sum()
Dirichlet character modulo 3 of conductor 1 mapping 2 |--> 1 Gauss sum -1
c=DP[1]; c c.gauss_sum()
Dirichlet character modulo 3 of conductor 3 mapping 2 |--> -1 2*zeta6 - 1
# Example 4 DP=DirichletGroup(7); c=DP[1]; c.gauss_sum()
zeta42^10 + zeta42^8 + zeta42^6 - zeta42^5 - zeta42^4 - zeta42^2 - zeta42