from sage.modular.dirichlet import DirichletCharacter
H = DirichletGroup(512, base_ring=CyclotomicField(128))
M = H._module
chi = DirichletCharacter(H, M([0,89]))
pari: [g,chi] = znchar(Mod(293,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(12889))
a |
−1 | 1 | 3 | 5 | 7 | 9 | 11 | 13 | 15 | 17 | 19 | 21 |
χ512(293,a) |
1 | 1 | e(12843) | e(12889) | e(6429) | e(6443) | e(12813) | e(12823) | e(321) | e(3215) | e(128127) | e(128101) |
pari: znchargauss(g,chi,a)
sage: chi.kloosterman_sum(a,b)