from sage.modular.dirichlet import DirichletCharacter
H = DirichletGroup(512, base_ring=CyclotomicField(128))
M = H._module
chi = DirichletCharacter(H, M([0,69]))
pari: [g,chi] = znchar(Mod(309,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(12869))
a |
−1 | 1 | 3 | 5 | 7 | 9 | 11 | 13 | 15 | 17 | 19 | 21 |
χ512(309,a) |
1 | 1 | e(128111) | e(12869) | e(6457) | e(6447) | e(128105) | e(128107) | e(3213) | e(323) | e(12851) | e(12897) |
pari: znchargauss(g,chi,a)
sage: chi.kloosterman_sum(a,b)