Function: bnrL1
Section: number_fields
C-Name: bnrL1
Prototype: GDGD0,L,p
Help: bnrL1(bnr,{H},{flag=0}): bnr being output by bnrinit and
 H being a square matrix defining a congruence subgroup of bnr (the
 trivial subgroup if omitted), for each character of bnr trivial on this
 subgroup, compute L(1, chi) (or equivalently the first nonzero term c(chi)
 of the expansion at s = 0). The binary digits of flag mean 1: if 0 then
 compute the term c(chi) and return [r(chi), c(chi)] where r(chi) is the
 order of L(s, chi) at s = 0, or if 1 then compute the value at s = 1 (and in
 this case, only for nontrivial characters), 2: if 0 then compute the value
 of the primitive L-function attached to chi, if 1 then compute the value
 of the L-function L_S(s, chi) where S is the set of places dividing the
 modulus of bnr (and the infinite places), 3: return also the characters.
Doc: let \var{bnr} be the number field data output by \kbd{bnrinit} and
 \var{H} be a square matrix defining a congruence subgroup of the
 ray class group corresponding to \var{bnr} (the trivial congruence subgroup
 if omitted). This function returns, for each \idx{character} $\chi$ of the ray
 class group which is trivial on $H$, the value at $s = 1$ (or $s = 0$) of the
 abelian $L$-function attached to $\chi$. For the value at $s = 0$, the
 function returns in fact for each $\chi$ a vector $[r_{\chi}, c_{\chi}]$ where
 $$L(s, \chi) = c \cdot s^{r} + O(s^{r + 1})$$
 \noindent near $0$.

 The argument \fl\ is optional, its binary digits
 mean 1: compute at $s = 0$ if unset or $s = 1$ if set, 2: compute the
 primitive $L$-function attached to $\chi$ if unset or the $L$-function
 with Euler factors at prime ideals dividing the modulus of \var{bnr} removed
 if set (that is $L_{S}(s, \chi)$, where $S$ is the
 set of infinite places of the number field together with the finite prime
 ideals dividing the modulus of \var{bnr}), 3: return also the character if
 set.
 \bprog
 K = bnfinit(x^2-229);
 bnr = bnrinit(K,1);
 bnrL1(bnr)
 @eprog\noindent
 returns the order and the first nonzero term of $L(s, \chi)$ at $s = 0$
 where $\chi$ runs through the characters of the class group of
 $K = \Q(\sqrt{229})$. Then
 \bprog
 bnr2 = bnrinit(K,2);
 bnrL1(bnr2,,2)
 @eprog\noindent
 returns the order and the first nonzero terms of $L_{S}(s, \chi)$ at $s = 0$
 where $\chi$ runs through the characters of the class group of $K$ and $S$ is
 the set of infinite places of $K$ together with the finite prime $2$. Note
 that the ray class group modulo $2$ is in fact the class group, so
 \kbd{bnrL1(bnr2,0)} returns the same answer as \kbd{bnrL1(bnr,0)}.

 This function will fail with the message
 \bprog
  *** bnrL1: overflow in zeta_get_N0 [need too many primes].
 @eprog\noindent if the approximate functional equation requires us to sum
 too many terms (if the discriminant of $K$ is too large).
