bridge/class-master/depend/pari/src/basemath/lfunutils.c
/* Find all characters of clgp whose kernel contain group given by HNF H.
 * Set *pcnj[i] if chi[i] is not real */
Find all characters of clgp whose kernel contain group given by HNF H.
Set *pcnj[i] if chi[i] is not real
Find all characters of clgp whose kernel contain group given by HNF H . Set * pcnj [ i ] if chi [ i ] is not real
static GEN
chigenkerfind(GEN bnr, GEN H, GEN *pcnj)
{
  GEN res, cnj, L = bnrchar(bnr, H, NULL), cyc = bnr_get_cyc(bnr);
  long i, k, l = lg(L);
  res = cgetg(l, t_VEC);
  *pcnj = cnj = cgetg(l, t_VECSMALL);
  for (i = k = 1; i < l; i++)
  {
    GEN chi = gel(L,i), c = charconj(cyc, chi);
    long fl = ZV_cmp(c, chi);
    if (fl < 0) continue; 
    gel(res, k) = chi;
    cnj[k] = fl; k++;
  }
  setlg(cnj, k);
  setlg(res, k); return res;
}
static GEN chigenkerfind ( GEN bnr , GEN H , GEN * pcnj ) { GEN res , cnj , L = bnrchar ( bnr , H , NULL ) , cyc = bnr_get_cyc ( bnr ) ; long i , k , l = lg ( L ) ; res = cgetg ( l , t_VEC ) ; * pcnj = cnj = cgetg ( l , t_VECSMALL ) ; for ( i = k = 1 ; i < l ; i ++ ) { GEN chi = gel ( L , i ) , c = charconj ( cyc , chi ) ; long fl = ZV_cmp ( c , chi ) ; if ( fl < 0 ) continue ; gel ( res , k ) = chi ; cnj [ k ] = fl ; k ++ ; } setlg ( cnj , k ) ; setlg ( res , k ) ; return res ; }
Find all characters of clgp whose kernel contain group given by HNF H.
 Set *pcnj[i] if chi[i] is not real
Find all characters of clgp whose kernel contain group given by HNF H . Set * pcnj [ i ] if chi [ i ] is not real
/* keep one char in pair of conjugates */