from sage.modular.dirichlet import DirichletCharacter
H = DirichletGroup(512, base_ring=CyclotomicField(128))
M = H._module
chi = DirichletCharacter(H, M([0,51]))
pari: [g,chi] = znchar(Mod(189,512))
χ512(5,⋅)
χ512(13,⋅)
χ512(21,⋅)
χ512(29,⋅)
χ512(37,⋅)
χ512(45,⋅)
χ512(53,⋅)
χ512(61,⋅)
χ512(69,⋅)
χ512(77,⋅)
χ512(85,⋅)
χ512(93,⋅)
χ512(101,⋅)
χ512(109,⋅)
χ512(117,⋅)
χ512(125,⋅)
χ512(133,⋅)
χ512(141,⋅)
χ512(149,⋅)
χ512(157,⋅)
χ512(165,⋅)
χ512(173,⋅)
χ512(181,⋅)
χ512(189,⋅)
χ512(197,⋅)
χ512(205,⋅)
χ512(213,⋅)
χ512(221,⋅)
χ512(229,⋅)
χ512(237,⋅)
...
order = charorder(g,chi)
[ charpow(g,chi, k % order) | k <-[1..order-1], gcd(k,order)==1 ]
(511,5) → (1,e(12851))
a |
−1 | 1 | 3 | 5 | 7 | 9 | 11 | 13 | 15 | 17 | 19 | 21 |
χ512(189,a) |
1 | 1 | e(128121) | e(12851) | e(6431) | e(6457) | e(128111) | e(12829) | e(3211) | e(325) | e(12821) | e(12855) |
pari: znchargauss(g,chi,a)
sage: chi.kloosterman_sum(a,b)