Karim Belabas on Sat, 30 Dec 2023 15:39:58 +0100


[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]

Re: Dirichlet L series principal characters


* Karim Belabas [2023-12-30 15:35]:
> Dear Rudolph,
> 
>   as documented in ??13 (or ?? "L-function"), only "primitive" L-functions
> are supported by PARI's implementation.
> 
> In particular for Dirichlet L-function (and more generally Hecke
> L-functions), a character given to any modulus encodes the attached
> *primitive* character. Thus all principal characters will yield the
> L-function attached to the trivial character mod 1, i.e., the Riemann
> zeta function.
> 
> The Dirichlet L-function attached to the actual non-primitive character
> mod N differs from the primitive one (of conductor F) by a simple finite
> Euler product
> 
>   \prod_{p | N, p \nid F} (1 - \chi(p) p^{-s})
> 
> Just multiply the value returned by lfun() by this factor
> (you may precompute the \chi(p)...).
> 
> If you're only interested in principal characters mod N, this is as
> simple as
> 
>   P = factor(N)[1,]; \\ can be precomputed

Sorry: I meant the first column (prime divisors of N), not the first row.

   P = factor(N)[,1];

This doesn't work for the trivial case N = 1 (no correction !). So
here's a "foolproof" version :

   P = if (N == 1, []~, factor(N)[,1]);

>   ZetaN(P, s) = zeta(s) * prod(j = 1, #P, 1 - P[j]^(-s));
> 
> Cheers,
> 
>       K.B.
> 
> * ra.dwars@quicknet.nl [2023-12-30 15:04]:
> >    Dear developers,
> > 
> > 
> >    I’d like to generate Dirichlet L-functions and used for instance:
> > 
> > 
> >    default(realprecision,30)
> > 
> >    p = 2; q = 3;
> > 
> >    L =lfuncreate(Mod(p,q));
> > 
> >    print(lfun(L,2));
> > 
> > 
> >    This method works well for all non-principal characters, however seems
> >    to fail for the principal ones with q > 1:
> > 
> > 
> >    default(realprecision,30)
> > 
> >    p = 1; q = 3;
> > 
> >    L =lfuncreate(Mod(p,q));
> > 
> >    print(lfun(L,2));
> > 
> > 
> >    1.64493406684822643647241516665 = (pi^2)/6
> > 
> >    which should be:
> > 
> >    1.46216361497620127686436903702 = (4*pi^2)/27
> > 
> > 
> >    It always seems to default to the zeta-function even when the modulus
> >    is greater than 1.
> > 
> > 
> >    Maybe I do something wrong here and is the Mod(p,q) not allowed for
> >    principal characters. Keen to learn how to obtain the right outcome.
> > 
> > 
> >    Thanks,
> > 
> >    Rudolph
> -- 
> Pr. Karim Belabas, U. Bordeaux, Vice-président en charge du Numérique
> Institut de Mathématiques de Bordeaux UMR 5251 - (+33) 05 40 00 29 77
> http://www.math.u-bordeaux.fr/~kbelabas/
> 

    K.B.
-- 
Pr. Karim Belabas, U. Bordeaux, Vice-président en charge du Numérique
Institut de Mathématiques de Bordeaux UMR 5251 - (+33) 05 40 00 29 77
http://www.math.u-bordeaux.fr/~kbelabas/