from sage.modular.dirichlet import DirichletCharacter
H = DirichletGroup(107, base_ring=CyclotomicField(106))
M = H._module
chi = DirichletCharacter(H, M([70]))
pari: [g,chi] = znchar(Mod(3,107))
χ107(3,⋅)
χ107(4,⋅)
χ107(9,⋅)
χ107(10,⋅)
χ107(11,⋅)
χ107(12,⋅)
χ107(13,⋅)
χ107(14,⋅)
χ107(16,⋅)
χ107(19,⋅)
χ107(23,⋅)
χ107(25,⋅)
χ107(27,⋅)
χ107(29,⋅)
χ107(30,⋅)
χ107(33,⋅)
χ107(34,⋅)
χ107(35,⋅)
χ107(36,⋅)
χ107(37,⋅)
χ107(39,⋅)
χ107(40,⋅)
χ107(41,⋅)
χ107(42,⋅)
χ107(44,⋅)
χ107(47,⋅)
χ107(48,⋅)
χ107(49,⋅)
χ107(52,⋅)
χ107(53,⋅)
...
order = charorder(g,chi)
[ charpow(g,chi, k % order) | k <-[1..order-1], gcd(k,order)==1 ]
2 → e(5335)
a |
−1 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
χ107(3,a) |
1 | 1 | e(5335) | e(5312) | e(5317) | e(532) | e(5347) | e(5321) | e(5352) | e(5324) | e(5337) | e(5328) |
pari: znchargauss(g,chi,a)
sage: chi.kloosterman_sum(a,b)