Function: bnrL1
Section: number_fields
C-Name: bnrL1
Prototype: GDGD0,L,p
Help: bnrL1(bnr, {H}, {flag=0}): bnr being output by bnrinit(,,1) 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 non-zero 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 non-trivial 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(,,1)} 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,1);
 bnrL1(bnr)
 @eprog\noindent
 returns the order and the first non-zero 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,1);
 bnrL1(bnr2,,2)
 @eprog\noindent
 returns the order and the first non-zero 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).
