1Function: bnrchar 2Section: number_fields 3C-Name: bnrchar 4Prototype: GGDG 5Help: bnrchar(bnr,g,{v}): returns all characters chi on bnr.clgp such that 6 chi(g[i]) = e(v[i]); if v is omitted, returns all characters that are 7 trivial on the g[i]. 8Doc: returns all characters $\chi$ on \kbd{bnr.clgp} such that 9 $\chi(g_i) = e(v_i)$, where $e(x) = \exp(2i\pi x)$. If $v$ is omitted, 10 returns all characters that are trivial on the $g_i$. Else the vectors $g$ 11 and $v$ must have the same length, the $g_i$ must be ideals in any form, and 12 each $v_i$ is a rational number whose denominator must divide the order of 13 $g_i$ in the ray class group. For convenience, the vector of the $g_i$ 14 can be replaced by a matrix whose columns give their discrete logarithm, 15 as given by \kbd{bnrisprincipal}; this allows to specify abstractly a 16 subgroup of the ray class group. 17 18 \bprog 19 ? bnr = bnrinit(bnfinit(x), [160,[1]], 1); /* (Z/160Z)^* */ 20 ? bnr.cyc 21 %2 = [8, 4, 2] 22 ? g = bnr.gen; 23 ? bnrchar(bnr, g, [1/2,0,0]) 24 %4 = [[4, 0, 0]] \\ a unique character 25 ? bnrchar(bnr, [g[1],g[3]]) \\ all characters trivial on g[1] and g[3] 26 %5 = [[0, 1, 0], [0, 2, 0], [0, 3, 0], [0, 0, 0]] 27 ? bnrchar(bnr, [1,0,0;0,1,0;0,0,2]) 28 %6 = [[0, 0, 1], [0, 0, 0]] \\ characters trivial on given subgroup 29 @eprog 30 31 32