from sage.modular.dirichlet import DirichletCharacter
H = DirichletGroup(109, base_ring=CyclotomicField(108))
M = H._module
chi = DirichletCharacter(H, M([31]))
pari: [g,chi] = znchar(Mod(40,109))
χ109(6,⋅)
χ109(10,⋅)
χ109(11,⋅)
χ109(13,⋅)
χ109(14,⋅)
χ109(18,⋅)
χ109(24,⋅)
χ109(30,⋅)
χ109(37,⋅)
χ109(39,⋅)
χ109(40,⋅)
χ109(42,⋅)
χ109(44,⋅)
χ109(47,⋅)
χ109(50,⋅)
χ109(51,⋅)
χ109(52,⋅)
χ109(53,⋅)
χ109(56,⋅)
χ109(57,⋅)
χ109(58,⋅)
χ109(59,⋅)
χ109(62,⋅)
χ109(65,⋅)
χ109(67,⋅)
χ109(69,⋅)
χ109(70,⋅)
χ109(72,⋅)
χ109(79,⋅)
χ109(85,⋅)
...
order = charorder(g,chi)
[ charpow(g,chi, k % order) | k <-[1..order-1], gcd(k,order)==1 ]
6 → e(10831)
a |
−1 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
χ109(40,a) |
−1 | 1 | e(3613) | e(2725) | e(1813) | e(2722) | e(10831) | e(2713) | e(121) | e(2723) | e(10819) | e(10889) |
pari: znchargauss(g,chi,a)
sage: chi.kloosterman_sum(a,b)