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