Testing latest pari + WASM + node.js... and it works?! Wow.
License: GPL3
ubuntu2004
Function: bnrconductor Section: number_fields C-Name: bnrconductor0 Prototype: GDGDGD0,L, Help: bnrconductor(A,{B},{C},{flag=0}): conductor f of the subfield of the ray class field given by A,B,C. flag is optional and can be 0: default, 1: returns [f, Cl_f, H], H subgroup of the ray class group modulo f defining the extension, 2: returns [f, bnr(f), H]. Doc: conductor $f$ of the subfield of a ray class field as defined by $[A,B,C]$ (of type \kbd{[\var{bnr}]}, \kbd{[\var{bnr}, \var{subgroup}]}, \kbd{[\var{bnf}, \var{modulus}]} or \kbd{[\var{bnf}, \var{modulus}, \var{subgroup}]}, \secref{se:CFT}) If $\fl = 0$, returns $f$. If $\fl = 1$, returns $[f, Cl_f, H]$, where $Cl_f$ is the ray class group modulo $f$, as a finite abelian group; finally $H$ is the subgroup of $Cl_f$ defining the extension. If $\fl = 2$, returns $[f, \var{bnr}(f), H]$, as above except $Cl_f$ is replaced by a \kbd{bnr} structure, as output by $\tet{bnrinit}(,f)$, without generators unless the input contained a \var{bnr} with generators. In place of a subgroup $H$, this function also accepts a character \kbd{chi} $=(a_j)$, expressed as usual in terms of the generators \kbd{bnr.gen}: $\chi(g_j) = \exp(2i\pi a_j / d_j)$, where $g_j$ has order $d_j = \kbd{bnr.cyc[j]}$. In which case, the function returns respectively If $\fl = 0$, the conductor $f$ of $\text{Ker} \chi$. If $\fl = 1$, $[f, Cl_f, \chi_f]$, where $\chi_f$ is $\chi$ expressed on the minimal ray class group, whose modulus is the conductor. If $\fl = 2$, $[f, \var{bnr}(f), \chi_f]$. \misctitle{Note} Using this function with $\fl \neq 0$ is usually a bad idea and kept for compatibility and convenience only: $\fl = 1$ has always been useless, since it is no faster than $\fl = 2$ and returns less information; $\fl = 2$ is mostly OK with two subtle drawbacks: $\bullet$ it returns the full \var{bnr} attached to the full ray class group, whereas in applications we only need $Cl_f$ modulo $N$-th powers, where $N$ is any multiple of the exponent of $Cl_f/H$. Computing directly the conductor, then calling \kbd{bnrinit} with optional argument $N$ avoids this problem. $\bullet$ computing the \var{bnr} needs only be done once for each conductor, which is not possible using this function. For maximal efficiency, the recommended procedure is as follows. Starting from data (character or congruence subgroups) attached to a modulus $m$, we can first compute the conductors using this function with default $\fl = 0$. Then for all data with a common conductor $f \mid m$, compute (once!) the \var{bnr} attached to $f$ using \kbd{bnrinit} (modulo $N$-th powers for a suitable $N$!) and finally map original data to the new \var{bnr} using \kbd{bnrmap}. Variant: Also available are \fun{GEN}{bnrconductor}{GEN bnr, GEN H, long flag} and \fun{GEN}{bnrconductormod}{GEN bnr, GEN H, long flag, GEN cycmod} which returns ray class groups modulo \kbd{cycmod}-th powers.