Alessandro Languasco

Home

Research

OEIS

Divulgazione

Programs

Books

Teaching

Links

Alessandro Languasco


Papers: List Papers; (with Abstracts); Curriculum (in Italian: long version ; short version); in English: long version) Google Scholar profile. ResearchGate page. Orcid ID. Scopus Author ID. Thomson Reuters Researcher ID, Mathematical Reviews page.


Computation of the Euler-Kronecker constants for prime cyclotomic fields
(and some related problems)
A. Languasco



In this page we collect some links concerning the computation of the Euler-Kronecker constants for prime cyclotomic fields, the maximum over non trivial characters for the logarithmic derivative of Dirichlet L-functions modulo q (q odd prime up to 10^6) and the generalised Euler constants in arithmetic progressions. In a recent paper [1], we introduced a faster method to compute the Euler-Kronecker constants for prime cyclotomic fields and, as a by-product, we also applied it to estimate the maximum of the absolute value of the logarithmic derivative of Dirichlet L-functions with prime modulus and to evaluate the generalised Euler constants in arithmetic progressions.

In particular in [1], using such an improved algorithm, we established that
𝔊9109334831 = -0.248739...

thus getting a new minimal negative value for 𝔊q. The previous record was obtained in 2014 by Ford, Luca and Moree in [2] and was 𝔊964477901 = -0.182374...

We describe here the PARI/Gp scripts and the C programs used. More detailed instructions on how to use the C programs are here: How-it-works.txt.

PARI/Gp scripts

Euler-Kronecker constants computation:
EK-direct-final.gp: PARI/GP script. It can be used via gp2c. The function to be run is:
global_eulerkronecker_direct (r1,r2,defaultprecision).
Input: 2< r1 < r2, two integers; defaultprecision is the number of digits requested.
Output: 𝔊q and 𝔊q+ for every odd prime q such that r1≤q≤r2 and the running times.
Comment: it uses the lfun command of PARI/Gp and the Conrey description of Dirichlet characters. Examples on how to use the function and computational results are collected at the bottom of the file.
EK-T-final.gp: PARI/GP script. It can be used via gp2c. The function to be run is:
global_eulerkroneckerT (r1,r2,defaultprecision,flag).
Input: 2< r1 < r2, two integers; defaultprecision is the number of digits requested; flag (defalult =0): if nonzero computes also the Euler generalised constant γ0(a,q) and γ1(a,q), 1≤a≤q.
Output: 𝔊q and 𝔊q+ for every odd prime q such that r1≤q≤r2 and the running times.
Comments: it computes first the needed values of ψ and T at the a/q points, see [1], and then obtain 𝔊q and 𝔊q+ with a trivial implementation of the sum over a, 1≤a≤q-1. Examples on how to use the function and computational results are collected at the bottom of the file.
EK-S-DIF-final.gp: PARI/GP script. It can be used via gp2c. The function to be run is:
global_eulerkroneckerS_DIF (r1,r2,defaultprecision).
Input: 2< r1 < r2, two integers; defaultprecision is the number of digits requested.
Output: 𝔊q and 𝔊q+ for every odd prime q such that r1≤q≤r2 and the running times.
Comments: it computes first the values of log(Γ) and the decimated in frequency values of S at the a/q points, see [1], and then obtain 𝔊q and 𝔊q+ with a trivial implementation of the sum over a, 1≤a≤q-1. Examples on how to use the function and computational results are collected at the bottom of the file.
Generalised Euler constants in arithmetic progressions:
Gen-Euler-constants.gp: PARI/GP script. It can be used via gp2c. The function to be run is:
gk(k,r1,r2,defaultprecision).
Input: k≥1 is an integer,r1 ≤ r2 two integers; defaultprecision is the number of digits requested.
Output: γk(a,q) for every q such that r1≤q≤r2 and 1≤a≤q.
Comments: it uses the values of T at the a/q points and then obtain γk(a,q) as described in [1]. Examples on how to use the function and computational results are collected at the bottom of the file.
Greedy sequence of prime offsets:
greedy_seq.gp: PARI/GP script. It can be used via gp2c. The function to be run is:
greedy()
whose output is the first 2088 terms of the greedy sequence of prime offsets.
Such values are used to evaluate which candidates (q prime) can have small, possibly negative, values of 𝔊q. An exhaustive search for every prime q up to 10^(10) were performed to oobtaine a list of q with evalutation greater than 1.2; for very few primes such a condition holds.
Maximum over non trivial characters for the logarithmic derivative of Dirichlet L-functions modulo q:
Max-direct-final.gp: PARI/GP script. It can be used via gp2c. The function to be run is:
max_direct (r1,r2,defaultprecision).
Input: 2< r1 < r2, two integers; defaultprecision is the number of digits requested.
Output: the value M(q) (distinguishing between even and odd characters) for every odd prime q such that r1≤q≤r2 and the running times.
Comment: it uses the lfun command of PARI/Gp and the Conrey description of Dirichlet characters. Examples on how to use the function and computational results are collected at the bottom of the file.
Max-S-final.gp: PARI/GP script. It can be used via gp2c. The function to be run is:
maxS_DIF (r1,r2,defaultprecision).
Input: 2< r1 < r2, two integers; defaultprecision is the number of digits requested.
Output: the value M(q) (distinguishing between even and odd characters) for every odd prime q such that r1≤q≤r2 and the running times.
Comments: it computes first the values of log(Γ) and the decimated in frequency values of S at the a/q points, see [1], and then obtain M(q) with a trivial implementation of the sum over a, 1≤a≤q-1. Examples on how to use the function and computational results are collected at the bottom of the file.
Max-T-final.gp: PARI/GP script. It can be used via gp2c. The function to be run is:
maxT (r1,r2,defaultprecision).
Input: 2< r1 < r2, two integers; defaultprecision is the number of digits requested.
Output: the value M(q) (distinguishing between even and odd characters) for every odd prime q such that r1≤q≤r2 and the running times.
Comments: it computes first the needed values of ψ and T at the a/q points, see [1], and then obtain M(q) with a trivial implementation of the sum over a, 1≤a≤q-1. Examples on how to use the function and computational results are collected at the bottom of the file.

C programs
Examples on how to use the following programs and the results obtained with them are contained in the directory: results.
At the bottom of each file are inserted the compilation instructions for some of the machines used for performing the actual computations.
Precomputations:
EKmain.c: C program.
input: an odd prime q.
output: the ascii file primroot.res contains q and g, a primitive root mod q.

m_precpsi.c: C program. Computes the needed values of ψ(a/q), a =gj mod q, g=primroot, for j in a given interval [x,y]. Saves the results on an ASCII file.
input: the file primroot.res (reads q and g), 0≤ x < y ≤ q-2: integers.
output: the ascii file precψ--x-y.res contains q in its first line and then, line by line, the values of ψ(gj/q), x≤j≤y.

DIFm_precS.c: C program. Computes the needed decimated in frequency values of -(S(a/q)+S(b/q)), a =gj mod q, b = gj+m mod q, m=(q-1)/2, g=primroot, for j in a given interval [x,y]. Saves the results on an ASCII file.
input: the file primroot.res (reads q and g), 0≤ x < y ≤ q-2: integers.
output: the ascii file precomp_S-DIF--x-y.res contains q in its first line and then, line by line, the decimated in frequency values of S. i.e. the values of -(S(gj/q)+S(gj+m/q)), m=(q-1)/2, x≤j≤y.

m_precT.c: C program. Computes the needed values of -T(a/q), a =gj mod q, g=primroot, for j in a given interval [x,y]. Saves the results on an ASCII file.
input: the file primroot.res (reads q and g), 0≤ x < y ≤ q-2: integers.
output: the ascii file precT--x-y.res contains q in its first line and then, line by line, the values of -T(gj/q), x≤j≤y.
FFT step: (using the FFTW library): All the following programs use the FFTW-guru64 interface (needed to being able to transform sequences having dimension larger than 2^(31)-1).

Euler-Kronecker constants computation:

EK-S-fftwl.c: C program.
It computes 𝔊q+ and 𝔊q via FFT; it needs the fftw library. It's the long double precision version. Values of log(Γ) are computed using the internal function of the C programming language. Uses the decimated in frequency values for S and the sequence gk mod q.
input: the ascii files primroot.res, precomp_S-DIF.res.
output: the values 𝔊q+ and 𝔊q and their difference together with the running times.

EK-T-fftwl.c: C program.
It computes 𝔊q+ and 𝔊q via FFT; it needs the fftw library. It's the long double precision version. Double precision values of ψ are computed using the GSL library.
input: the ascii files primroot.res, precomp_T.res.
output: the values 𝔊q+ and 𝔊q and their difference together with the running times.

An alternative version of EK-T-fftwl.c (which uses the ψ function values generated by the program m_precpsi previously described; precomputed and stored on an external file as for T and S) is also available on request together with the quadruple precision versions of all the previously mentioned programs.

Maximum over non trivial characters for the logarithmic derivative of Dirichlet L-functions modulo q:

Max-S-fftwl.c: C program.
It computes M(q) via FFT; it needs the fftw library. It's the long double precision version. Values of log(Γ) are computed using the internal function of the C programming language. Uses the decimated in frequency values for S and the sequence gk mod q.
input: the ascii files primroot.res, precomp_S-DIF.res.
output: the value M(q) (distinguishing between even and odd characters) and the running times.

Max-T-fftwl.c: C program.
It computes M(q) via FFT; it needs the fftw library. It's the long double precision version. Double precision values of ψ are computed using the GSL library.
input: the ascii files primroot.res, precomp_T.res.
output: the value M(q) (distinguishing between even and odd characters) and the running times.

Results
The results presented in [1] can be retrieved as follows.
The results for 𝔊q+, 𝔊q and Mq for q up to 30011 are contained at the bottom of the each gp scripts listed before.
The results for 𝔊q+ and 𝔊q for q from 40009 up to 75743411 were obtained with the C programs (and the FFTW library) and are collected as .zip files in the directory results.
The results for 𝔊q+, 𝔊q and Mq for every prime between 3 and 10^6 were obtained with the C programs (and the FFTW library) on the cluster of the Math. Dept. of the University of Padova; they can be found in a spreadsheet file here: results; in the directory plots you can find the scattered plots of the normalised results of 𝔊q+, 𝔊q and Mq for every prime between 3 and 10^6.
The results for 𝔊q+ and 𝔊q with q≥ 193894451 were obtained with the C programs (and the FFTW library) on the cluster of the Math. Dept. or on the C.A.P.R.I. (Calcolo ad Alte Prestazioni per la Ricerca e l'Innovazione) infrastructure of the University of Padova. They involve huge files to store the needed values for T, S (and ψ; ascii files of about 20GB for S and 40 GB T and ψ for q= 964477901, for instance) and hence cannot be here included. We can just insert a .txt file with the output of the final fft-programs.
References

Some of the mathematical papers connected with this project are the following.
[1] A. Languasco - A note on the computation of the Euler-Kronecker constants for prime cyclotomic fields , Arxiv, 2019.
[2] K. Ford; F. Luca; P. Moree - Values of the Euler phi-function not divisible by a given odd prime, and the distribution of Euler-Kronecker constants for cyclotomic fields - Math. Comp. 83 (2014), 1457-1476.
[3] P. Moree - Irregular Behaviour of Class Numbers and Euler-Kronecker Constants of Cyclotomic Fields: The Log Log Log Devil at Play, in Irregularities in the Distribution of Prime Numbers. From the Era of Helmut Maier's Matrix Method and Beyond (J. Pintz and M.Th. Rassias, eds.), Springer, 2018, pp. 143-163.



Ultimo aggiornamento: 09.10.2019: 08:35:51

Go to the
Maths Department
Home Page

Home

Research

OEIS

Divulgazione

Programs

Books

Teaching

Links

© Alessandro Languasco 2019