/****** Copyright A. Languasco - 2007 25/01/2021: updated version (line 374 of this file) works with pari/gp 2.13.1 and gp2c 0.0.12 Examples towards the bottom of this file (line 1070); 3<=q<=10; q=29,30 much faster than in 2007.... ******/ /******** REMARK (25/01/2021) : This script was developed in 2007 and originally worked on pari/gp 2.3.1; in that version no Dirichlet characters implementation was available (the same for the Bernoulli polynomials); so we implemented them directly. It is possible that an alternative script that uses such functions (now available in pari/gp 2.13.1) has a better performance. *******/ /**************** A. LANGUASCO & A. ZACCAGNINI ******************** ************* COMPUTATION OF THE MERTENS CONSTANTS MOD q; 3 <= q<= 100 ******* ************* WITH A PRECISION OF AT LEAST 100 DECIMAL DIGITS ***************** ************* Computation of C(q,a) A*q=B truncation limit of primes *** ************* chi is a character mod q; q >=3 *************************** *******************************************************************************/ \\ Global variables: \\ bernvector: vector of the needed Bernoulli numbers \\ factvector: vector of the needed factorials \\ zetavector: vector of the needed values of the Riemann zeta function \\ B: level A*q of the primes used for the finite products \\ U: is the minimun value obtained in computing values of Dirichlet L-functions with the Euler-McLaurin formula \\ isqprime: is 1 if q is prime; 0 otherwise global(bernvector,factvector, zetavector,characters, B, U, isqprime); global(defaulterror=0); {mertensconstants(q)=local(minutes,millisec,seconds, A,K,M,N,T, alphapqa, S,P,phiq,a, u, i, j, maxim, col, freq, maxim1,lines, rows, C,Cresults,Cvector,prodC,deltaprodC,TruncCresults, TruncprodC, chi, chars, finalerr,finalerrvector,totalerr, err1, err2, err4, elaptimeprecomp, elaptimefinalcomp, Schivector, correctdigits, defaultprecision ); \\ Local variables: \\ minutes,millisec,seconds: used just to compute the elapsed computation time \\ A,K,M,N,T: MAIN PARAMETERS; see the paper for their meaning \\ S,P,phiq,a,i,j, maxim, col, freq, maxim1,lines, rows: indexes or aux variables \\ alphapqa: exponend in the Mertens formula for arithmetic progrssion; used in finite products \\ finalerr,finalerrvector,totalerr, err1, err2, err4: errors, see the paper \\ C,Cresults,Cvector,prodC,deltaprodC, TrunCresults, TruncprodC: values od the constants; of their product and its error from the expected value \\ chi, chars : vector of a character mod q; matrix of the characters mod q; see the function genchar \\ defaultprecision: used to fix the precision used in the computations \\ correctdigits: number of correct digits of our output \\ Schivector : with q fixed, computes for every character chi the summation over m and k; doesn't depend on a print("************ A. LANGUASCO & A. ZACCAGNINI *************"); print("****** COMPUTATION OF THE MERTENS CONSTANTS MOD q; 3 <= q<= 100 *******"); print("****** WITH A PRECISION OF AT LEAST 100 DECIMAL DIGITS *******"); print("q= ",q); if (q>100, print("q is too large"); return); \\ primality test on q phiq=eulerphi(q); isqprime=isprime(q); \\ precision setting defaultprecision=120; \\defaultprecision=510; default(realprecision,defaultprecision); defaulterror=10^(-defaultprecision); \\ Initialization of the matrix of characters and their computation chars = matrix(phiq,q+3,lines,rows, 0); chars = genchar(q); \\ print(chars); /********************************************************************************* Start of the Computation of Schivector: this is the most time-consuming part *********************************************************************************/ print("precomputations (quite long); depends on phi(q)."); \\\ Initialization of U that computes the error in estimating the L(s,chi) function using the Euler Mc-Laurin Formula U = 100000000; \\ settings of the main parameters for a precision of about 100 decimal digits A=3200; \\if(q>=3 && q<=10, A=100; K=10; M=10; N=840; T = 6); \\\ faster on the mac laptop if(q>=3 && q<=10, M = 26; K = 26; N = ((840*20\q)+1)*q; T = 88); \\ for the 3-10 range if(q>=11 && q<=20, M = 26; K = 26; N = ((840*25\q)+1)*q; T = 106); \\ for the 11-20 range if(q>=21 && q<=30, M = 26; K = 26; N = ((840*32\q)+1)*q; T = 116); \\ for the 21-30 range if(q>=31 && q<=40, M = 26; K = 26; N = ((840*36\q)+1)*q; T = 128); \\ for the 31-40 range if(q>=41 && q<=50, M = 26; K = 26; N = ((840*40\q)+1)*q; T = 138); \\ for the 41-50 range if(q>=51 && q<=60, M = 26; K = 26; N = ((840*44\q)+1)*q; T = 146); \\ for the 51-60 range if(q>=61 && q<=70, M = 26; K = 26; N = ((840*48\q)+1)*q; T = 154); \\ for the 61-70 range if(q>=71 && q<=80, M = 26; K = 26; N = ((840*40\q)+1)*q; T = 206); \\ for the 71-80 range if(q>=81 && q<=90, M = 26; K = 26; N = ((840*45\q)+1)*q; T = 206); \\ for the 81-90 range if(q>=91 && q<=100, M = 26; K = 26; N = ((840*49\q)+1)*q; T = 210); \\ for the 91-100 range print("Main parameters: for their meaning see the paper: L&Z Math. Comp. 78 (2009), 315-326."); print("A= ",A); print("K= ",K); print("M= ",M); print("N= ",N); print("T= ",T); gettime(); \\ Initialization of bernvector: a vector of precomputed Bernoulli numbers; \\ bernvector[i] contains the i-1-th Bernoulli number \\ this depends on the fact that Gp indexes start from 1 maxim=max(T,M*K)+1; bernvector=vector(maxim,col,0); factvector=vector(maxim,col,0); factvector[1]=1.0; bernvector[1]=bernreal(0); for(j=2,maxim,bernvector[j]=bernreal(j-1); factvector[j]=j*factvector[j-1]); \\ Initialization of zetavector: a vector of precomputed values of the Riemann zeta function; \\ zetavector[i] contains zeta(i) starting from i=2 \\ the position corresponding to i=1 isn't used maxim1=max(M,K); zetavector=vector(M*K,col,0); freq=vector(M*K,col,0); for(j=2,maxim1,zetavector[j]=zeta(j); freq[j]+=1); for(m=2, M, for (k=2,K,zetavector[m*k]=zeta(m*k); freq[m*k]+=1)); \\ print("Frequency of the computed values of the Riemann zeta", freq); \\ initialization of the vector of the used character and of the vector \\ of the results of the summation over m and k (depends on chi and q; doesn't depend on a) chi = vector(q+3); Schivector= vector(phiq-1,col,0); \\ Computation of the sum over primes depending on a character; \\ The results are stored in a vector Schivector for (j=2, phiq, \\ for j=1 we have the principal character; we don't sum on it, see genchar \\ for(i=1,q, chi[i]=chars[j,i]); \\ just for testing \\ print("******************** j= ",j); \\ just for testing chi=chars[j,]; \\ print("chi = ",chi); \\ just for testing for (m=1,M, \\ print("m= ",m); \\ just for testing Schivector[j-1] = Schivector[j-1] + (m^(-1)*1.0* Smchi(m, q, chi, A, K, T, N)) ); ); \\ B is the level of prime used in the finite products B=A*q; if (B>9600, B=9600); write("~/results.tex","************ A. LANGUASCO & A. ZACCAGNINI *************"); write("~/results.tex", " "); write("~/results.tex","****** COMPUTATION OF THE MERTENS CONSTANTS MOD q; 3 <= q<= 100 *******"); write("~/results.tex", " "); write("~/results.tex","****** WITH A PRECISION OF AT LEAST 100 DECIMAL DIGITS *******"); write("~/results.tex", " "); \\ print("Schivector =", Schivector); \\ just for testing print("********** ERRORS **************"); print("Errors: see the paper for their definitions and estimations"); \\ err1 using the estimate |L_Aq|< (Aq)^(-k*m) * min (Aq/(k*m-1); err1= (2*B)/(K^2*(B^K-1)*(B-1)); print("err1= ", err1*1.0); err2= B/(B^M*(B-1)*M*(M-1)); print("err2= ", err2*1.0); print("U = ", U); err4 = (2 * (M * K + T-1)^(T-2) * abs(bernvector[T+1]) * q^T)/(U * factvector[T] * N^(T-1) *(N-1)) ; print("err4= ", err4); totalerr= (err1+err2+err4) * (phiq-1)/phiq; print("totalerr= ",totalerr); elaptimeprecomp=gettime(); \\print(elaptimeprecomp); /********************************************************************************** END computations of Schivector ***********************************************************************************/ gettime(); print("used level of primes: B= min(A*q,9600) = ", B); \\ Initialization of the variables for the results Cvector = vector(phiq); finalerrvector = vector(phiq); Cresults = matrix(phiq,4); TruncCresults= matrix(phiq,4); i=1; for (a=1,q, if (gcd(a,q)==1, \\ Computation of the truncated product over primes P=1; forprime(p=2, B , if (p%q == a, alphapqa=phiq-1, alphapqa=-1); \\print ("p=", p," alphapqa = ", alphapqa); P *= (1-1.0/p)^(alphapqa); ); \\ Computation of the sum over prime and characters S=0; for (j=2, phiq, \\ print("******************** j= ",j); chi=chars[j,]; \\ print("chi = ",chi); S += Schivector[j-1] * conj(chi[a]); ); \\ print("S = ", S); print("****** FINAL RESULT ********"); C= P^(1/phiq) * exp(-S/phiq - Euler/phiq); Cvector[i]=real(C); print("C(q,a) with q = ", q, " and a = ",a, " is = ", real(C)); \\ FINAL ERRORS finalerr=abs(C)*abs(totalerr); finalerrvector[i]=finalerr; print("with error <= of ", finalerr); correctdigits=floor(abs(log(finalerr)/log(10)))-2; if (finalerr>=1, print("err4 is LARGE !!!!, change N and/or T"), print("number of the correct decimal digits = ", correctdigits)); Cresults[i,]=[q,a,real(C),correctdigits]; TruncCresults[i,]=[q,a,truncate(real(C)*10^40)/10^40.,correctdigits]; i=i+1; ); if ((q==3 && a==1), print("error from Finch's computation of C(3,1) = ", 1.4034774468-real(C))); if ((q==3 && a==2), print("error from Finch's computation of C(3,2) = ", 0.6000732161-real(C))); if ((q==4 && a==1), print("error from Finch's computation of C(4,1) = ", 1.2923041571-real(C))); if ((q==4 && a==3), print("error from Finch's computation of C(4,3) = ", 0.8689277682-real(C))); ); \\ product verification print("****** PRODUCT VERIFICATION ********"); print("VERIFICATION OF EQ. (24) OF THE PAPER"); prodC=1; \\ print(Cvector, finalerrvector); for (u=1, phiq, prodC = prodC * Cvector[u]); deltaprodC = prodC - exp(-Euler)*q/phiq; \\OUTPUTS on one files: results= complete results in TeX format; write("~/results.tex","These are the constants for q = ", q); write("~/results.tex", " "); write("~/results.tex","The first column is the modulus q"); write("~/results.tex", " "); write("~/results.tex","The second column is the class a"); write("~/results.tex", " "); write("~/results.tex","The third column is the constant C(q,a)"); write("~/results.tex", " "); write("~/results.tex","The fourth column is number of correct digits in C(q,a)"); write("~/results.tex", " "); write("~/results.tex","$$"); writetex("~/results.tex",Cresults); write("~/results.tex","$$"); write("~/results.tex", " "); write("~/results.tex","The product of these constants is = ", prodC); write("~/results.tex", " "); write("~/results.tex","The error from its expected value exp(-gamma)q/phi(q) is = ", deltaprodC); write("~/results.tex", " "); print("The product of these constants is = ", prodC); print("The error from its expected value exp(-gamma)q/phi(q) is = ", deltaprodC); elaptimefinalcomp=gettime(); print("****** COMPUTATION TIME ********"); write("~/results.tex", "****** COMPUTATION TIME ********"); write("~/results.tex", " "); seconds=floor(elaptimeprecomp/1000)%60; minutes=floor(elaptimeprecomp/60000); millisec=elaptimeprecomp- minutes*60000 - seconds*1000; write("~/results.tex", "Time for the precomputation: ", minutes, " min, ", seconds, " sec, ", millisec, " millisec"); write("~/results.tex", " "); print("Time for the precomputation: ", minutes, " min, ", seconds, " sec, ", millisec, " millisec"); seconds=floor(elaptimefinalcomp/1000)%60; minutes=floor(elaptimefinalcomp/60000); millisec=elaptimefinalcomp- minutes*60000 - seconds*1000; print("Time for the final computation: ", minutes, " min, ", seconds, " sec, ", millisec, " millisec"); write("~/results.tex","Time for the final computation: ", minutes, " min, ", seconds, " sec, ", millisec, " millisec"); write("~/results.tex", " "); seconds=floor((elaptimefinalcomp+elaptimeprecomp)/1000)%60; minutes=floor((elaptimefinalcomp+elaptimeprecomp)/60000); millisec=elaptimefinalcomp+elaptimeprecomp- minutes*60000 - seconds*1000; write("~/results.tex","Total computation time: ", minutes, " min, ", seconds, " sec, ", millisec, " millisec"); write("~/results.tex", " "); print("Total computation time: ", minutes, " min, ", seconds, " sec, ", millisec, " millisec"); print("****** END PROGRAM ********"); write("~/results.tex","****** END PROGRAM ********"); write("~/results.tex", " "); } /*** Computation of the n-Bernoulli-chi number *** *** chistar is a primitive character modulo f; f is the conductor of chistar ***/ {chibern(n,chistar,f)= local(S, r); \\ print("start chibern"); \\just for testing S=0; for(r=1,f-1, S += chistar[r]*bernpolcomp(n,r/f*1.0)); S *= f^(n-1)*1.0; return(S); } /*** n-Bernoulli polynomial computed in x ***/ /*** (2021) changed; old name "bernpol" conflicted with the same name used in recent version of parigp ***/ {bernpolcomp(n,x)= local(S, j); \\ print("start berpol");\\just for testing S=0; for(j=0,n, S += binomial(n,j)*bernvector[j+1]*x^(n-j)); \\ print("fine bernpol"); return(S); } /*** Computation of Dirichlet L(chi,s); Re(s)>1, using the chi-formula of Euler-McLaurin *** *** chi is a primitive character mod q; *** *** truncation level N = lq (positive integer) of the finite sum for L(s,chi) *** *** truncation level T (even positive integer > 3) of the finite Euler-Mclaurin sum for L(s,chi) ***/ {LEuler(s, chi, q, T, N)= local(S, S1, prods, j, j1, i, LTN, V, conf); \\ print("start L(s,chi,q, T, N)"); \\just for testing S=0.0; S1=0.0; prods = s*1.0; for (j=1, N-1, j1= j%q; if (j1==0, j1=q); S1 += chi[j1]/(j^s)); for (i=3, T, prods *= (s+i-2); S += (-1)^(i-1) * chibern(i,chi,q) * prods * N^(-i+1)/ factvector[i] ); V= N^(-s); S= V * S; \\ \\ print("s=",s); \\ B_0(chi)=0 because chi is a Dirichlet character \\ LTN = - chibern(1,chi,q) * V + chibern(2,chi,q) * s * V * N^(-1)/ 2 - S + S1; \\ \\ print("termine ",chibern(1,chi,q) * V ); \\ print("LTN ",LTN); \\ needed to evaluate the final errors \\ conf=abs(LTN); if ( conf < U, U = conf); \\ \\ print("LTN = ", LTN); \\ print("fine L(s, chi, q, T, N)"); \\ return(LTN) } /*** Computation of the rootnumber(chi); for q<=100 the Gauss sum is used *****/ {rootnumber(chistar, f, e) = local(S, j, j1, W, e1); S=0.0; e1=0; if (e==0, e1=1, e1=-I); \\ e=0,1 depending on the parity of chi \\ \\ if chistar is quadratic then W(chistar)=1 \\ if (chistar[f+1]==2, W=1; \\ print ("chistar is a quadratic character") ,if (f<=100, \\ \\ print ("chistar is not a quadratic character"); \\ print("chistar = ", chistar); \\ computation of the GAUSS sum \\ remark: chistar[f]=0 \\ for (j=1, f-1, S += chistar[j] * exp(2*Pi*I*j/f)); W = e1 * S/sqrt(f), \\ \\ remark: in this case the sum is an infinite series; I compute just 100000 terms (is it enough ???) \\ for (j=1, 10000, j1= j%f; if (j1==0, j1=f); S += chistar[j1] * exp(-Pi*j^2)); \\W = e1 * S/conj(S) W = e1 * (S/abs(S))^2 ); ); \\ \\ print("f = ", f ," e = ", e, " e1 = ", e1); \\ print("Gauss sum = ", S ," module = ", abs(S)); \\ print("rootnumber = ", W ," module = ", abs(W)); return(W) } /*** Computation of the tail of the Euler product for L(s,chi); Re(s)>1, *** **** B1 is the limit of the primes used ***/ {Lprodtail(s, B1, chi, q, T, N, princ) = local(P, P1, P2, p1, q1, u, L, W, e, valchi, Ltail, prim, cond, order, f, chistar, phif, checkchar, induces,a1); \\ print("start Lprodtail"); \\ print("s=", s); L=1; P=1; P1=1; P2=1; u=-s; prim=chi[q+2]; cond=chi[q+3]; order=chi[q+1]; \\ \\ computation of the finite Euler product for L(s,chi) with primes less or equal than B1=B \\ forprime(p=2, B1 , p1= p%q; if (p1==0, p1=q); P=P*(1-chi[p1]*p^u)); \\check if chi is the principal character \\ if ((princ==1 && s<>1), \\ print ("** principal character and s<>1; I can use the Riemann zeta"); \\ \\ computation of the finite product needed to pass from zeta(s) to L(s,chi_0), chi_0 modulo q forprime(p=2, q , q1= q%p; if (q1==0, P1*=(1-p^u*1.0))); \\ \\ computation of L(s,chi_0) \\ L = zetavector[s] * P1; \\ \\ computation of the tail of L(s,chi_0) with primes > B Ltail= L * P; \\ \\ print ("Ltail= ", Ltail); return(Ltail) ); \\ chi is not the principal character \\ \\ chi is a primitive character ?? \\ if (prim == 0, \\ computation of chistar that induces the imprimitive character chi \\ print("imprimitive character"); f=cond; phif=eulerphi(f); \\ print("f= ",f, " cond= ", cond, " phif= ", phif); chistar=vector(f+3); checkchar = matrix(phif,f+3); checkchar = genchar(f); \\ print(checkchar); for (k=1,phif, induces=1; \\ print("k= ", k); for(a=2, q, if(gcd(a,q)==1, \\ print("a= ", a); a1=a%f; if (a1==0, a1=f); if (abs(chi[a]-checkchar[k,a1])>=defaulterror, induces=0*induces, induces=1*induces) ) ); if (induces ==1, chistar=checkchar[k,]; \\ printtex("chistar = ", chistar); \\ print("induces = ", induces); \\ printtex("chi = ", chi); \\ print("checkchar = ", checkchar[k,]); break; ); ); \\ \\ computation of the finite product for the imprimitive character \\ forprime (p=2, q, if(q%p==0, p1=p%f; if (p1==0, p1=f); P2 = P2 * (1-chistar[p1]*p^u*1.0)); ) , \\ print("primitive character"); f=q; chistar=vector(q+3); chistar=chi; \\ print("chi = chistar = ", chistar); ); \\ computation of the parity of chistar; e=0 if chistar(-1)=1; e=1 if chistar(-1)=-1 \\ valchi = chistar[f-1]; \\print("valchi=", valchi); \\print("defaulterror=", defaulterror); if (abs(valchi-1)9600, B=9600); Smtail=0; chik=vector(q+3); \\ print("chi = ", chi); for(k=1,K, for(j=1,q, chik[j]=(chi[j])^k); if ((k%chi[q+1]) == 0, princ=1, princ=0; if(isqprime, chik[q+2]=1; chik[q+3]=q; chik[q+1]= chi[q+1]/gcd(chi[q+1],k), \\ print("primitivity test on chik and computation of its conductor"); \\ ndiv = numdiv(q); \\print("ndiv", ndiv); div = vector(ndiv); div = divisors(q); \\print("div", div); testprim=1; cond=q; \\print("cond", cond); \\print("k = ", k); for (i = 2, ndiv-1, flag=0; \\print("i=",i); forstep (a=div[i]+1, q, div[i], \\print("a=",a); if (gcd(a,q)==1 && abs(chik[a]-1)>= defaulterror, flag=1; break); ); \\ print("flag = ", flag); if (flag == 0, testprim=0; cond = div[i]; break); flag=0; ); chik[q+2]=testprim; chik[q+3]=cond; chik[q+1]= chi[q+1]/gcd(chi[q+1],k); ); ); \\ print("m= ", m," k= ", k, " chik=", chik); \\ print("princ =", princ); \\ if (princ==0, print("chi^k is NOT principal")); \\ if (princ==1, print("chi^k is principal")); Smtail = Smtail + (moebius(k) * log(Lprodtail(k*m, B, chik, q, T, N, princ))/k) ); \\ print("end Smchi"); return(Smtail) } /***************** DIRICHLET CHARACTERS GENERATION ****************/ /********** GENERAL CASE *******************/ /*** Dirichlet characters modulo an integer q such that Zq^* is not cyclic ******/ {genchar(q)= local(phiq, u, l, i, k, vec, numprimefactors, car1,car2, order1,order2, prim1,prim2, cond,cond1, cond2, carresult, factorization,q1,q2,numcar1,numcar2,l1,l2,ndiv,div,flag,testprim, charactersgen); charactersgen=matrix(phiq,q+3,lines,rows, 0); \\ \\ we have a row for every character \\ and a column for every class in Z_q \\ the q+1 column contains the order of the character in \hat{Z_q*} \\ the q+2 column is 1 if the character is primitive; 0 otherwise \\ the q+3 column contains the conductor f of the character (=q if primitive) \\ that induces this one \\\\ q is prime? if (isprime(q)==1, return(gencharmodprime(q))); \\Zq^* is cyclic ? vec = vector(3); vec = znstar(q); if (length(vec[2])==1, return(gencharcyclic(q))); \\ print("Z/qZ^* with q= ",q," is not cyclic"); \\ q is a power of two >=8? (the case q=2,4 are detected with isprime and cyclic) \\ factorization is a matrix containing the complete factorization of q factorization = factor(q); \\ computation and control of the number of distinct prime factors of q numprimefactors= length(factorization[,1]); if ((numprimefactors==1 && factorization[1,1]==2), \\ print("q= ",q," is a power of two >=8"); return(gencharpowersoftwo(q,factorization[1,2]))); \\ GENERAL CASE: Zq^* is not cyclic and q is not power of two >=8 phiq=vec[1]; \\ print("phiq= ",phiq); car1=matrix(phiq,q+3,lines,rows, 0); car2=matrix(phiq,q+3,lines,rows, 0); carresult=matrix(phiq,q+3,lines,rows, 0); \\ We build a character mod q starting from characters defined mod prime powers dividing q \\ the case of powers of two has to be considered in a special way \\\\\\\\\\\\\\\\\\\\\\\ order1= vector(phiq); order2= vector(phiq); prim1= vector(phiq); prim2= vector(phiq); cond1= vector(phiq); cond2= vector(phiq); if (factorization[1,1]==2, if (factorization[1,2]==1, q1=2; car1=gencharmodprime(2); \\print(car1); \\car1=characters , q1=(2^factorization[1,2]) ; car1=gencharpowersoftwo(q1,factorization[1,2]); \\print(car1); \\car1=characters ), q1=factorization[1,1]^factorization[1,2]; car1=gencharcyclic(q1); \\car1=characters; \\print(car1); ); numcar1= length(car1[,1]); order1=car1[,q1+1]; prim1=car1[,q1+2]; cond1=car1[,q1+3]; \\ print("car1",car1); for (k=2, numprimefactors, q2=factorization[k,1]^factorization[k,2]; car2=gencharcyclic(q2); \\car2=characters; numcar2= length(car2[,1]); order2=car2[,q2+1]; prim2=car2[,q2+2]; cond2=car2[,q2+3]; for (i=1, numcar1, for (j=1, numcar2, for(l=1,q, l1= l%q1; if (l1==0, l1=q1); l2= l%q2; if (l2==0, l2=q2); carresult[(i-1)*numcar2+j,l] = car1[i,l1] * car2[j,l2] ); carresult[(i-1)*numcar2+j,q+1]=lcm(order1[i],order2[j]); \\ primitivity test on the generated character and computation of the conductor testprim=1; cond=q; ndiv = numdiv(q); div = vector(ndiv); div = divisors(q); for (u=2, ndiv-1, flag=0; forstep (a=div[u]+1, q, div[u], if (gcd(a,q)==1 && (round(real(carresult[(i-1)*numcar2+j,a]))) <> 1, flag=1; break); ); \\ print("flag = ", flag); if (flag == 0, testprim=0; cond = div[u]; break); flag=0; ); carresult[(i-1)*numcar2+j,q+2]=testprim; carresult[(i-1)*numcar2+j,q+3]=cond; ) ); car1=carresult; q1=q1*q2; numcar1= numcar1*numcar2; order1=car1[,q+1]; prim1=car1[,q+2]; cond1=car1[,q+3]; ); charactersgen=carresult; \\ print("the characters modulo q = " ,q," are "); \\ printtex(charactersgen); \\ printp(charactersgen); return(charactersgen) } /*** Dirichlet characters modulo a prime p ***/ /*** this is the easiest case ***/ {gencharmodprime(p)= local(j, k, u, v, g, g1,charactersp); if (isprime(p)<>1, print("p= ",p," is not a prime"); return); \\ print(p," is a prime"); \\ \\ we have a row for every character \\ and a column for every class in Z_p \\ the p+1 column contains the order of the character in \hat{Z_p*} \\ the p+2 column is 1 if the character is primitive; 0 otherwise \\ the p+3 column contains the conductor f of the character (=q if primitive) \\ that induces this one charactersp=matrix(p-1,p+3); g1=znprimroot(p); g=lift(g1); u=2*Pi*I/(p-1)*1.0; \\ print("u= ", u); \\ print("g= ",g); for (k=1,p-1, charactersp[1,k]=1); charactersp[1,p]=0; charactersp[1,p+1]=1; charactersp[1,p+2]=0; \\ the principal character mod p, p odd, is not primitive if (p==2,charactersp[1,p+2]=1); \\ the principal character mod 2, is primitive charactersp[1,p+3]=p; \\ every character mod a prime has f=p for(j=2,p-1, charactersp[j,1]=1; charactersp[j,p]=0; charactersp[j,p+2]=1; \\ every non principal character mod a prime is primitive charactersp[j,p+3]=p; \\ every character mod a prime has f=p \\ v=exp(u*(j-1)); \\ \\ order of the j-th character (it is identified by the (j-1)th power \\ of the prmitive root g \\ charactersp[j,p+1]= (p-1)/gcd(j-1,p-1); \\ \\ print("j= ", j); \\ print("v= ", v); \\ print("order of the character= ", charactersp[j,p+1]); \\ for (k=1,p-1, \\ print("k= ", k); print("g^k%p = ", g^k%p); print("v^k = ", v^k); charactersp[j,g^k%p]=v^k ); ); \\ print("the characters mod q = " ,p," are "); \\ printtex(charactersp); \\ printp(charactersp); return(charactersp) } /*** Dirichlet characters modulo an integer q such that Zq^* is cyclic ***/ /*** similar to the previous case, we have a primitive root ***/ {gencharcyclic(q)= local(phiq, u, v, l, g, g1, g2, k, div, ndiv, a, testprim, cond, flag, characterscycl); if (isprime(q)==1, return(gencharmodprime(q))); \\ print("Z/qZ^* with q= ",q," is cyclic"); \\ \\ we have a row for every character \\ and a column for every class in Z_q \\ the q+1 column contains the order of the character in \hat{Z_q*} \\ the q+2 column is 1 if the character is primitive; 0 otherwise \\ the q+3 column contains the conductor f of the character (=q if primitive) \\ that induces this one g1=znprimroot(q); g=lift(g1); phiq=eulerphi(q); \\ print("phiq= ",phiq); characterscycl=matrix(phiq,q+3); u=2*Pi*I/phiq*1.0; \\ print("u= ", u); \\ print("g= ",g); ndiv = numdiv(q); div = vector(ndiv); div = divisors(q); for(l=1,phiq, characterscycl[l,1]=1; characterscycl[l,q]=0; v=exp(u*(l-1)); \\ \\ order of the l-th character (it is identified by the (l-1)th power \\ of the primitive root g) \\ remark: if l=1, pari gives gcd(0,phiq)=phiq \\ characterscycl[l,q+1]= phiq/gcd(l-1,phiq); \\ \\ print("l= ", l); \\ print("v= ", v); \\ print("order of the character= ", characterscycl[l,q+1]); \\ for (k=1,q-1, \\ print("k= ", k); print("g^k%q = ", g^k%q); print("v^k = ", v^k); g2=g^k; if (gcd(g2,q)==1, characterscycl[l,g2%q]=v^k, characterscycl[l,g2%q]=0); ); \\ \\ primitivity test on the l-th character and computation of the conductor \\ testprim=1; cond=q; for (i=2, ndiv-1, flag=0; forstep (a=div[i]+1, q, div[i], if (gcd(a,q)==1 && (round(real(characterscycl[l,a]))) <> 1, flag=1; break); ); \\ print("flag = ", flag); if (flag == 0, testprim=0; cond = div[i]; break); flag=0; ); characterscycl[l,q+2]=testprim; characterscycl[l,q+3]=cond; ); \\ print("the characters mod q = " ,q," are "); \\ printtex(characterscycl); \\ printp(characterscycl); return(characterscycl) } /*** Dirichlet characters modulo an integer q =2^a with a>=3 ***/ {gencharpowersoftwo(q,power)= local(phiq, u,u2, v, l, g, g2, k, div, ndiv, a, testprim, cond, flag, veceulerphi, tabindex, tabchar, mult, elem, aux,vecelem,j1,j2, exponent, index,car,P, characterstwo); \\ we have a row for every character \\ and a column for every class in Z_q \\ the q+1 column contains the order of the character in \hat{Z_q*} \\ the q+2 column is 1 if the character is primitive; 0 otherwise \\ the q+3 column contains the conductor f of the character (=q if primitive) \\ that induces this one \\ we generate the characters mod a power of two as described in Davenport's book phiq=eulerphi(q); \\ print("phiq= ",phiq); characterstwo=matrix(phiq,q+3,lines,rows, 0); /*** "primitive roots" for powers of two >=8 *****/ g = vector(2); g2 = vector(2); u = vector(2); u2 = vector(2); v = vector(2); veceulerphi = vector(2); index = vector(2); tabindex = matrix(phiq,2); tabchar = matrix(phiq,2); exponent = power; \\ this is an integer g[1]=-1; u[1]=Pi*I*1.0; veceulerphi[1]=2; g[2]=5; veceulerphi[2]=2^(exponent-2); u[2]=2*Pi*I/veceulerphi[2]*1.0; \\ print("exponent = ", exponent); mult=vector(2); mult[1]=1; mult[2]=veceulerphi[2]; \\ print("mult = ", mult); for (j1=1, veceulerphi[1], for (j2=1, veceulerphi[2], l=(j1-1)*mult[2]+j2; tabindex[l,1]=j1-1; \\ print("riga = ", l); print("j1= ", j1); tabindex[l,2]=j2-1; \\ print("j2= ", j2); )); /*** This part is to generate the table of the indexes for the characters ***/ tabchar=tabindex; \\ print("tabchar =", tabchar); \\ print("tabindex =", tabindex); /*** vecelem collects the generated elements ***/ vecelem = vector(phiq); /*** Used to test the primitivity *****/ ndiv = numdiv(q); div = vector(ndiv); div = divisors(q); /*** Generation of the characters ***/ /*** k counts the characters ***/ /*** l counts the elements ***/ /*** the elements are generated using "primitive roots" ***/ for(k=1,phiq, characterstwo[k,1]=1; \\ characterstwo[k,q]=0; (character is initialized with zeros) car=tabchar[k,]; \\ print("car = ", car); v[1]=exp(u[1]*car[1]); v[2]=exp(u[2]*car[2]); \\ \\ order of the k-th character \\ remark: pari gives gcd(0,phiq)=phiq \\ characterstwo[k,q+1]= lcm(veceulerphi[1]/gcd(car[1],veceulerphi[1]), veceulerphi[2]/gcd(car[2],veceulerphi[2])); \\ \\ print("l= ", l); \\ print("v= ", v); \\ print("order of the character= ", characterstwo[k,q+1]); for(l=1,phiq, index=tabindex[l,]; \\ print("index = ",index); P=2^exponent; elem = Mod(g[1]^index[1] * g[2]^index[2], P); \\ print("elem = ", elem); vecelem[l]=lift(elem); elem=vecelem[l]; aux=1; for (i=1, 2, aux=aux*v[i]^index[i]); characterstwo[k,elem]= aux; \\ print("index= ", index); print("g^index%q = ", elem); \\ print("v^index = ", aux); ); \\ primitivity test on the k-th character and computation of the conductor testprim=1; cond=q; for (i=2, ndiv-1, flag=0; forstep (a=div[i]+1, q, div[i], if (gcd(a,q)==1 && (round(real(characterstwo[k,a]))) <> 1, flag=1; break); ); \\ print("flag = ", flag); if (flag == 0, testprim=0; cond = div[i]; break); flag=0; ); characterstwo[k,q+2]=testprim; characterstwo[k,q+3]=cond; ); \\ print("vecelem = ", vecelem); \\ print("the characters mod q = " ,q," are "); \\ printtex(characterstwo); \\ printp(characterstwo); return(characterstwo) } /****** macmini_2018; i7 8GB RAM; RUNNING TIMES ABOUT 13 TIMES FASTER THAN IN DEC 2007 (in the most time consuming case: q prime) languasc@languasc-macmini Desktop % gp2c-run -pmy_ -g -W MertensConstantsfinal.gp GP/PARI CALCULATOR Version 2.13.1 (released) i386 running darwin (x86-64/GMP-6.2.1 kernel) 64-bit version compiled: Jan 25 2021, Apple clang version 12.0.0 (clang-1200.0.32.28) threading engine: single (readline v8.0 enabled, extended help enabled) Copyright (C) 2000-2020 The PARI Group PARI/GP is free software, covered by the GNU General Public License, and comes WITHOUT ANY WARRANTY WHATSOEVER. Type ? for help, \q to quit. Type ?17 for how to get moral (and possibly technical) support. parisizemax = 400003072, primelimit = 500000 ? for (q=3, 10, init_MertensConstantsfinal(); mertensconstants(q)) ************ A. LANGUASCO & A. ZACCAGNINI ************* ****** COMPUTATION OF THE MERTENS CONSTANTS MOD q; 3 <= q<= 100 ******* ****** WITH A PRECISION OF AT LEAST 100 DECIMAL DIGITS ******* q= 3 precomputations (quite long); depends on phi(q). Main parameters: for their meaning see the paper: L&Z Math. Comp. 78 (2009), 315-326. A= 3200 K= 26 M= 26 N= 16803 T= 88 ********** ERRORS ************** Errors: see the paper for their definitions and estimations err1= 8.55217308906104860612143334535552074735198055456538324579614300837951544695157607762204835797436970291998633791951626004 E-107 err2= 4.44713000631174527518314533958487078862302988837399928781399436435734803241481956036346514614667224551826435883439729008 E-107 U = 0.781302412896486296867187429624092356365134336545285420222100062966886984651618218092869570832209861021042350256509035769 err4= 3.30505070409385850832027930078834845717793655357972609984062237227545669198672528759010060837764917069408615695360238788 E-152 totalerr= 6.49965154768639694065228934247019576798750522312221661885199794052857139007737204758172502885038402413943653451468512105 E-107 used level of primes: B= min(A*q,9600) = 9600 ****** FINAL RESULT ******** C(q,a) with q = 3 and a = 1 is = 1.40347744682785639513609585918268164403075161645191432969074560184103696538879548927151352079598464834770057704717097792 with error <= of 9.12211435941762968711729544402094957574082457329012176906997431187454381677758773628705449989637318459068391482405007692 E-107 number of the correct decimal digits = 104 error from Finch's computation of C(3,1) = -2.78563951360958591826816440307516164519143296907456018410369653887954892715135207959846483477005770471709779239251859357 E-11 ****** FINAL RESULT ******** C(q,a) with q = 3 and a = 2 is = 0.600073216177321673307412836784917604720024008493204363839322651767638002748072126117855357075425632280762109494506967200 with error <= of 3.90026680825208265998064790874491686260518472115809279014345066953651735176127347286597054798257311565089773662703541459 E-107 number of the correct decimal digits = 104 error from Finch's computation of C(3,2) = -7.73216733074128367849176047200240084932043638393226517676380027480721261178553570754256322807621094945069672000826140755 E-11 ****** PRODUCT VERIFICATION ******** VERIFICATION OF EQ. (24) OF THE PAPER The product of these constants is = 0.842189225350327754736214822186321180148565580387729752231238614067631950611428455699306738401321538150978696514317562757 The error from its expected value exp(-gamma)q/phi(q) is = -8.254926160978438658 E-135 ****** COMPUTATION TIME ******** Time for the precomputation: 0 min, 4 sec, 451 millisec Time for the final computation: 0 min, 0 sec, 1 millisec Total computation time: 0 min, 4 sec, 452 millisec ****** END PROGRAM ******** ************ A. LANGUASCO & A. ZACCAGNINI ************* ****** COMPUTATION OF THE MERTENS CONSTANTS MOD q; 3 <= q<= 100 ******* ****** WITH A PRECISION OF AT LEAST 100 DECIMAL DIGITS ******* q= 4 precomputations (quite long); depends on phi(q). Main parameters: for their meaning see the paper: L&Z Math. Comp. 78 (2009), 315-326. A= 3200 K= 26 M= 26 N= 16804 T= 88 ********** ERRORS ************** Errors: see the paper for their definitions and estimations err1= 8.55217308906104860612143334535552074735198055456538324579614300837951544695157607762204835797436970291998633791951626004 E-107 err2= 4.44713000631174527518314533958487078862302988837399928781399436435734803241481956036346514614667224551826435883439729008 E-107 U = 0.915965594177219015054603514932384110774149374281672134266498119621763019776254769479356512926115106248574422619196199579 err4= 2.76982639287355547121127096476110558243501470782869284616858912534300983660543586624403986349097895439958246271679724714 E-141 totalerr= 6.49965154768639694065228934247019590647882486514746482736861692442371086143393321042739906048997724136961717864875008726 E-107 used level of primes: B= min(A*q,9600) = 9600 ****** FINAL RESULT ******** C(q,a) with q = 4 and a = 1 is = 1.29230415712868860710913838987043206534296142501299724122762923161950005528232079427303075975524499416132242218879029632 with error <= of 8.39952671496304560312355380861599076536996974227007626934642291667468689572460205264825342863026632047537296013814736860 E-107 number of the correct decimal digits = 104 error from Finch's computation of C(4,1) = -2.86886071091383898704320653429614250129972412276292316195000552823207942730307597552449941613224221887902963218268669424 E-11 ****** FINAL RESULT ******** C(q,a) with q = 4 and a = 3 is = 0.868927768234323829909152779104652912293941287622749217749101160269541966357498123797732536864180631772248490312177508292 with error <= of 5.64772771363190970133185113258129139433522182859388065142303415188905058278924053454791510931371804817915645472401422637 E-107 number of the correct decimal digits = 104 error from Finch's computation of C(4,3) = -3.43238299091527791046529122939412876227492177491011602695419663574981237977325368641806317722484903121775082918864841862 E-11 ****** PRODUCT VERIFICATION ******** VERIFICATION OF EQ. (24) OF THE PAPER The product of these constants is = 1.12291896713377033964828642958176157353142077385030633630831815209017593414857127426574231786842871753463826201909008368 The error from its expected value exp(-gamma)q/phi(q) is = 3.577134669757323419 E-134 ****** COMPUTATION TIME ******** Time for the precomputation: 0 min, 4 sec, 397 millisec Time for the final computation: 0 min, 0 sec, 1 millisec Total computation time: 0 min, 4 sec, 398 millisec ****** END PROGRAM ******** ************ A. LANGUASCO & A. ZACCAGNINI ************* ****** COMPUTATION OF THE MERTENS CONSTANTS MOD q; 3 <= q<= 100 ******* ****** WITH A PRECISION OF AT LEAST 100 DECIMAL DIGITS ******* q= 5 precomputations (quite long); depends on phi(q). Main parameters: for their meaning see the paper: L&Z Math. Comp. 78 (2009), 315-326. A= 3200 K= 26 M= 26 N= 16805 T= 88 ********** ERRORS ************** Errors: see the paper for their definitions and estimations err1= 8.55217308906104860612143334535552074735198055456538324579614300837951544695157607762204835797436970291998633791951626004 E-107 err2= 4.44713000631174527518314533958487078862302988837399928781399436435734803241481956036346514614667224551826435883439729008 E-107 U = 0.430408940964004038889433232950605425424570682540289654757006103992561215461131961361490264697219955406330542783242653564 err4= 1.97814126266792273857716557837843816333074533145086289266302392535789140817998861278599391383443636419095898034365349693 E-132 totalerr= 9.74947732152959541097843416206588835207546322549195527859046527935854746833951367821592952993263707482783398151497870017 E-107 used level of primes: B= min(A*q,9600) = 9600 ****** FINAL RESULT ******** C(q,a) with q = 5 and a = 1 is = 1.22523843853908458005760977474922052754059550939164993876733364430267314296441761927384161956273652956675679630118914946 with error <= of 1.19454343700031381397771568165286383349136562649288680036884455474586217010316791969579569770884291238335731922802953475 E-106 number of the correct decimal digits = 103 ****** FINAL RESULT ******** C(q,a) with q = 5 and a = 2 is = 0.546975845411263480238301287430814037751996324100819295153127187191751811085715166833584063723835482321072101259058877024 with error <= of 5.33272860026159111618470463178190435137937314623582636026434992665784929198177517678019142099433027738249953679294162051 E-107 number of the correct decimal digits = 104 ****** FINAL RESULT ******** C(q,a) with q = 5 and a = 3 is = 0.805951040448267864057376860278430932081288114939010897934816941252077661882698551311190144681085267970243331497376528885 with error <= of 7.85760139111356918685520377621717073746422897281984183793874444523694516479300296366081026220639457219430851652353525870 E-107 number of the correct decimal digits = 104 ****** FINAL RESULT ******** C(q,a) with q = 5 and a = 4 is = 1.29936454791497798816084001496426590950257497040832966201678177031292287883544035806476476976765793029409355115957741463 with error <= of 1.26681251922966332335521563016417396476801942016796779844150325770645750229165148110853722808600721824553808132314729897 E-106 number of the correct decimal digits = 103 ****** PRODUCT VERIFICATION ******** VERIFICATION OF EQ. (24) OF THE PAPER The product of these constants is = 0.701824354458606462280179018488600983457137983656441460192698845056359958842857046416088948667767948459148913761931302298 The error from its expected value exp(-gamma)q/phi(q) is = -2.751642053659479553 E-135 ****** COMPUTATION TIME ******** Time for the precomputation: 0 min, 17 sec, 912 millisec Time for the final computation: 0 min, 0 sec, 3 millisec Total computation time: 0 min, 17 sec, 915 millisec ****** END PROGRAM ******** ************ A. LANGUASCO & A. ZACCAGNINI ************* ****** COMPUTATION OF THE MERTENS CONSTANTS MOD q; 3 <= q<= 100 ******* ****** WITH A PRECISION OF AT LEAST 100 DECIMAL DIGITS ******* q= 6 precomputations (quite long); depends on phi(q). Main parameters: for their meaning see the paper: L&Z Math. Comp. 78 (2009), 315-326. A= 3200 K= 26 M= 26 N= 16806 T= 88 ********** ERRORS ************** Errors: see the paper for their definitions and estimations err1= 8.55217308906104860612143334535552074735198055456538324579614300837951544695157607762204835797436970291998633791951626004 E-107 err2= 4.44713000631174527518314533958487078862302988837399928781399436435734803241481956036346514614667224551826435883439729008 E-107 U = 0.781302412896486296867187429624092356365134336545285420222100062966886984651618218092869570832209861021042350256509035769 err4= 1.00691993781506319533807046786707567625054682781194374994645941513026105888008012769440906647076843285724008833913469001 E-125 totalerr= 6.49965154768639694115574931137772736565654045540322910493034210027440361465642752655788728150056103806632988161234099149 E-107 used level of primes: B= min(A*q,9600) = 9600 ****** FINAL RESULT ******** C(q,a) with q = 6 and a = 1 is = 1.40347744682785639513609585918268164403075161645191432969074560184103696538879548927151352079598464834770057704717097792 with error <= of 9.12211435941762968782389015576332398755678170820332853702757466452385809351471817817361312907162417541333466575909086713 E-107 number of the correct decimal digits = 104 ****** FINAL RESULT ******** C(q,a) with q = 6 and a = 5 is = 1.20014643235464334661482567356983520944004801698640872767864530353527600549614425223571071415085126456152421898901393440 with error <= of 7.80053361650416532056552150300758743834008467811762779830203438372015737134205665189744686511335698086092254134512720959 E-107 number of the correct decimal digits = 104 ****** PRODUCT VERIFICATION ******** VERIFICATION OF EQ. (24) OF THE PAPER The product of these constants is = 1.68437845070065550947242964437264236029713116077545950446247722813526390122285691139861347680264307630195739302863512551 The error from its expected value exp(-gamma)q/phi(q) is = -1.6509852321956877316 E-134 ****** COMPUTATION TIME ******** Time for the precomputation: 0 min, 4 sec, 714 millisec Time for the final computation: 0 min, 0 sec, 1 millisec Total computation time: 0 min, 4 sec, 715 millisec ****** END PROGRAM ******** ************ A. LANGUASCO & A. ZACCAGNINI ************* ****** COMPUTATION OF THE MERTENS CONSTANTS MOD q; 3 <= q<= 100 ******* ****** WITH A PRECISION OF AT LEAST 100 DECIMAL DIGITS ******* q= 7 precomputations (quite long); depends on phi(q). Main parameters: for their meaning see the paper: L&Z Math. Comp. 78 (2009), 315-326. A= 3200 K= 26 M= 26 N= 16807 T= 88 ********** ERRORS ************** Errors: see the paper for their definitions and estimations err1= 8.55217308906104860612143334535552074735198055456538324579614300837951544695157607762204835797436970291998633791951626004 E-107 err2= 4.44713000631174527518314533958487078862302988837399928781399436435734803241481956036346514614667224551826435883439729008 E-107 U = 0.547959686797993973084485988763460471773209256099387525707354920244194691984265729779267955516150884069982989552165200326 err4= 1.11201075344705159965095121651993989867149681863700943300386644648398849575633657736715566689339703396024458588525545700 E-119 totalerr= 1.08327525794782549100483547804500354059929419856983783586906453184748894548440663554010582005820075867542867448232281623 E-106 used level of primes: B= min(A*q,9600) = 9600 ****** FINAL RESULT ******** C(q,a) with q = 7 and a = 1 is = 1.20435271605501440413126997959392601183676589049086000623996647133915014817306154092687452467632280984468762620025717425 with error <= of 1.30464549914465995921185458060571275826734245865605664990060846086711469798160486920305875107632103895105180386822676203 E-106 number of the correct decimal digits = 103 ****** FINAL RESULT ******** C(q,a) with q = 7 and a = 2 is = 0.594076756711581695708866113711395334935385747255074695655662531866356386927084714701352777047329844640017965162775278201 with error <= of 6.43548651867546229920232847745297385637065794988454152677431136445687174854698740330001623785132345112863657853184243131 E-107 number of the correct decimal digits = 104 ****** FINAL RESULT ******** C(q,a) with q = 7 and a = 3 is = 0.758887871969507948538519415899608619280876525210872336199797650798534932217185066377599204334815364914007838562926098747 with error <= of 8.22084455261245088983720988653591324551461290877666145475154274901578050890969856341891828415603648414303828594789345772 E-107 number of the correct decimal digits = 104 ****** FINAL RESULT ******** C(q,a) with q = 7 and a = 4 is = 1.13294022629041473068984707798108314819944014526969365615031357748962948579797563474847921345637470887245597596954763061 with error <= of 1.22728611587421680028747163899092260741801395053748124167444928558600643801446647816669170662918774402836295592524831641 E-106 number of the correct decimal digits = 103 ****** FINAL RESULT ******** C(q,a) with q = 7 and a = 5 is = 0.931050745332883433205760041997001866253573737047181532749030049219829254245863146183737660315687322654343108197121264903 with error <= of 1.00858423631299448150257031733648954626473109688803474464175338446155691595990034944189152518170267386976031564240562116 E-106 number of the correct decimal digits = 103 ****** FINAL RESULT ******** C(q,a) with q = 7 and a = 6 is = 1.14369702818941978991547359336609290938601433984778813420564470058783812322418088337890959310676032489014644027775288160 with error <= of 1.23893869322605516490597864038206413349907932022275444736578937048360740519810738005559747195443693583405428529761212873 E-106 number of the correct decimal digits = 103 ****** PRODUCT VERIFICATION ******** VERIFICATION OF EQ. (24) OF THE PAPER The product of these constants is = 0.655036064161366031461500417256027584559995451412678696179852255385935961586666576655016352089916751895205652844469215478 The error from its expected value exp(-gamma)q/phi(q) is = -2.751642053659479553 E-135 ****** COMPUTATION TIME ******** Time for the precomputation: 0 min, 29 sec, 857 millisec Time for the final computation: 0 min, 0 sec, 4 millisec Total computation time: 0 min, 29 sec, 861 millisec ****** END PROGRAM ******** ************ A. LANGUASCO & A. ZACCAGNINI ************* ****** COMPUTATION OF THE MERTENS CONSTANTS MOD q; 3 <= q<= 100 ******* ****** WITH A PRECISION OF AT LEAST 100 DECIMAL DIGITS ******* q= 8 precomputations (quite long); depends on phi(q). Main parameters: for their meaning see the paper: L&Z Math. Comp. 78 (2009), 315-326. A= 3200 K= 26 M= 26 N= 16808 T= 88 ********** ERRORS ************** Errors: see the paper for their definitions and estimations err1= 8.55217308906104860612143334535552074735198055456538324579614300837951544695157607762204835797436970291998633791951626004 E-107 err2= 4.44713000631174527518314533958487078862302988837399928781399436435734803241481956036346514614667224551826435883439729008 E-107 U = 0.623225240140230513394020080250568002650695312346567252898714776096170004547014180467669073235626628069583652091422695443 err4= 1.23375814818510976989302202810959410868359497186331353213821556517910809073486334011703463989478514137241971453777620666 E-114 totalerr= 9.74947741406145652486166675568194576020081598347415978995611793991881499795790353360388563686837945343757362549691375292 E-107 used level of primes: B= min(A*q,9600) = 9600 ****** FINAL RESULT ******** C(q,a) with q = 8 and a = 1 is = 1.32834120331389550588694078385692098622242377148301277750546542569668866003483734219982684016488106027190353083459807126 with error <= of 1.29506325598760414211870699635576761189944522141247449817525799813930418474587087064593842014599039395736897986885333658 E-106 number of the correct decimal digits = 103 ****** FINAL RESULT ******** C(q,a) with q = 8 and a = 3 is = 0.785738307875234472838594047212663020833712187267896646389823429616463453253555872666658885591083200280849647492339446990 with error <= of 7.66053788599246556874676744576221532035791711782013013227921346368212544126524590323265180434566102668288470388634332293 E-107 number of the correct decimal digits = 104 ****** FINAL RESULT ******** C(q,a) with q = 8 and a = 5 is = 0.972870640393218974236965585561973590051001183952947150562598292290079977352959095462175092757279209108972080114179206191 with error <= of 9.48498033531719371677805538006503739663819775829486146305516431426859667861805246094013045487540804123874018708151906206 E-107 number of the correct decimal digits = 104 ****** FINAL RESULT ******** C(q,a) with q = 8 and a = 7 is = 1.10587425803897398201897780296631426072140203548835711253180967369337520008656505442257773196751903854734612457655926065 with error <= of 1.07816961015429479582607156909653696017335054553769560841360047513772363721478387260196174691651348947370208117108479658 E-106 number of the correct decimal digits = 103 ****** PRODUCT VERIFICATION ******** VERIFICATION OF EQ. (24) OF THE PAPER The product of these constants is = 1.12291896713377033964828642958176157353142077385030633630831815209017593414857127426574231786842871753463826201909008368 The error from its expected value exp(-gamma)q/phi(q) is = -2.751642053659479553 E-135 ****** COMPUTATION TIME ******** Time for the precomputation: 0 min, 15 sec, 627 millisec Time for the final computation: 0 min, 0 sec, 3 millisec Total computation time: 0 min, 15 sec, 630 millisec ****** END PROGRAM ******** ************ A. LANGUASCO & A. ZACCAGNINI ************* ****** COMPUTATION OF THE MERTENS CONSTANTS MOD q; 3 <= q<= 100 ******* ****** WITH A PRECISION OF AT LEAST 100 DECIMAL DIGITS ******* q= 9 precomputations (quite long); depends on phi(q). Main parameters: for their meaning see the paper: L&Z Math. Comp. 78 (2009), 315-326. A= 3200 K= 26 M= 26 N= 16803 T= 88 ********** ERRORS ************** Errors: see the paper for their definitions and estimations err1= 8.55217308906104860612143334535552074735198055456538324579614300837951544695157607762204835797436970291998633791951626004 E-107 err2= 4.44713000631174527518314533958487078862302988837399928781399436435734803241481956036346514614667224551826435883439729008 E-107 U = 0.614378620376788150720960619169648452431948235180072098925363962003750314631359765220852200274692525069897615868326169513 err4= 4.07597595226131590125651896050525690860486790198568365035849182168776290982945669543763054681104818580897822756526680062 E-110 totalerr= 1.08361492261042126643381960032507473274030127590344735143837465537987927018968542455674592788898774971867163958178990141 E-106 used level of primes: B= min(A*q,9600) = 9600 ****** FINAL RESULT ******** C(q,a) with q = 9 and a = 1 is = 1.17384958686544919027013946839197396049956269282192325758544293539369591585894058309856778382156311733264399360066578814 with error <= of 1.27200092922747870022676376396978700719607519620744335334696487132055251069119471191737876842859839265253133332080556830 E-106 number of the correct decimal digits = 103 ****** FINAL RESULT ******** C(q,a) with q = 9 and a = 2 is = 0.545530382934285196044630744391443716483239434102073973260396546748530645791134639071194206890277712799918949461094998020 with error <= of 5.91144863684968931066530189466894485266403350601008818934395022952793979284572383540028834635921085496004719385610466582 E-107 number of the correct decimal digits = 104 ****** FINAL RESULT ******** C(q,a) with q = 9 and a = 4 is = 1.13360386133436932499173359590759623742339637224206758084137012391520446314142933657624288581412887201602285504210285221 with error <= of 1.22839006047071733669010379789824641624852198265580917459666136032629761336978999758040254449627746992258425965558782890 E-106 number of the correct decimal digits = 103 ****** FINAL RESULT ******** C(q,a) with q = 9 and a = 5 is = 0.941231091779833251557257470487470358316662205766094961729734212209235941878411064176396217057424445723698419845187966178 with error <= of 1.01993205667752632511035643515013606579200134902586107784312804012550849018949866827317787359048224255892401828081861602 E-106 number of the correct decimal digits = 103 ****** FINAL RESULT ******** C(q,a) with q = 9 and a = 7 is = 1.05470661565485874510828199884014910243407287242835794263551265853975128825896756933232190857349750849459498797646696909 with error <= of 1.14289582769953908604569557643094409498228995029640530363920566327255826033002541891483370722877906399796405015407899640 E-106 number of the correct decimal digits = 103 ****** FINAL RESULT ******** C(q,a) with q = 9 and a = 8 is = 1.16866230084028696612480813816421762831451922091514682064972832062288210558502385497150037880581296292100243109407490490 with error <= of 1.26637990868276441696734005883250394684116704691831744239087790525852477165654737809072688319388531669734730543984873007 E-106 number of the correct decimal digits = 103 ****** PRODUCT VERIFICATION ******** VERIFICATION OF EQ. (24) OF THE PAPER The product of these constants is = 0.842189225350327754736214822186321180148565580387729752231238614067631950611428455699306738401321538150978696514317562757 The error from its expected value exp(-gamma)q/phi(q) is = 1.3758210268297397764 E-135 ****** COMPUTATION TIME ******** Time for the precomputation: 0 min, 29 sec, 844 millisec Time for the final computation: 0 min, 0 sec, 4 millisec Total computation time: 0 min, 29 sec, 848 millisec ****** END PROGRAM ******** ************ A. LANGUASCO & A. ZACCAGNINI ************* ****** COMPUTATION OF THE MERTENS CONSTANTS MOD q; 3 <= q<= 100 ******* ****** WITH A PRECISION OF AT LEAST 100 DECIMAL DIGITS ******* q= 10 precomputations (quite long); depends on phi(q). Main parameters: for their meaning see the paper: L&Z Math. Comp. 78 (2009), 315-326. A= 3200 K= 26 M= 26 N= 16810 T= 88 ********** ERRORS ************** Errors: see the paper for their definitions and estimations err1= 8.55217308906104860612143334535552074735198055456538324579614300837951544695157607762204835797436970291998633791951626004 E-107 err2= 4.44713000631174527518314533958487078862302988837399928781399436435734803241481956036346514614667224551826435883439729008 E-107 U = 0.430408940964004038889433232950605425424570682540289654757006103992561215461131961361490264697219955406330542783242653564 err4= 5.96386232248999878864730099737776987060696485876111385375455653680685047129293929452817440913697269923989698769642434099 E-106 totalerr= 5.44784447402045863258331914940385676815334942729128908033667770556040261442218414374504431966180767056279154302886177200 E-106 used level of primes: B= min(A*q,9600) = 9600 ****** FINAL RESULT ******** C(q,a) with q = 10 and a = 1 is = 1.22523843853908458005760977474922052754059550939164993876733364430267314296441761927384161956273652956675679630118914946 with error <= of 6.67490845675260726552649080584172742043447350937505658862885976762833042752604847951515084048903957972816080407827020912 E-106 number of the correct decimal digits = 103 ****** FINAL RESULT ******** C(q,a) with q = 10 and a = 3 is = 0.805951040448267864057376860278430932081288114939010897934816941252077661882698551311190144681085267970243331497376528885 with error <= of 4.39069592203713522229343864984693292627073023031317769214072700783190334895319891132501555736022777943005369974053342966 E-106 number of the correct decimal digits = 103 ****** FINAL RESULT ******** C(q,a) with q = 10 and a = 7 is = 1.09395169082252696047660257486162807550399264820163859030625437438350362217143033366716812744767096464214420251811775405 with error <= of 5.95967867369284077205491456992806851345327392666193721936051866489614295741611769180548394485946777800235144230719706683 E-106 number of the correct decimal digits = 103 ****** FINAL RESULT ******** C(q,a) with q = 10 and a = 9 is = 1.29936454791497798816084001496426590950257497040832966201678177031292287883544035806476476976765793029409355115957741463 with error <= of 7.07873597209670427651125282352432817660890978171163934889601481090826552510339913451377215792804788023805305247976702768 E-106 number of the correct decimal digits = 103 ****** PRODUCT VERIFICATION ******** VERIFICATION OF EQ. (24) OF THE PAPER The product of these constants is = 1.40364870891721292456035803697720196691427596731288292038539769011271991768571409283217789733553589691829782752386260460 The error from its expected value exp(-gamma)q/phi(q) is = -1.1006568214637918211 E-134 ****** COMPUTATION TIME ******** Time for the precomputation: 0 min, 18 sec, 449 millisec Time for the final computation: 0 min, 0 sec, 3 millisec Total computation time: 0 min, 18 sec, 452 millisec ****** END PROGRAM ******** ? init_MertensConstantsfinal(); mertensconstants(29) ************ A. LANGUASCO & A. ZACCAGNINI ************* ****** COMPUTATION OF THE MERTENS CONSTANTS MOD q; 3 <= q<= 100 ******* ****** WITH A PRECISION OF AT LEAST 100 DECIMAL DIGITS ******* q= 29 precomputations (quite long); depends on phi(q). Main parameters: for their meaning see the paper: L&Z Math. Comp. 78 (2009), 315-326. A= 3200 K= 26 M= 26 N= 26883 T= 116 ********** ERRORS ************** Errors: see the paper for their definitions and estimations err1= 8.55217308906104860612143334535552074735198055456538324579614300837951544695157607762204835797436970291998633791951626004 E-107 err2= 4.44713000631174527518314533958487078862302988837399928781399436435734803241481956036346514614667224551826435883439729008 E-107 U = 0.597794677224574154950308072386379989155387168537441765047924224712475451008844246965101609615237707586659729126181049351 err4= 2.80239488285083749222418138536898573794915919477893678318125537061546251589852725676172941714062644566544609649499000092 E-106 totalerr= 3.95581357837425556319911642336791685970570808767741521380861663975025069012676800554027074014013311763394005309286773607 E-106 used level of primes: B= min(A*q,9600) = 9600 ****** FINAL RESULT ******** C(q,a) with q = 29 and a = 1 is = 1.04244846648954527348234237456695209503892629516342179245691973299990224212082455393694165150485235808748412307286091025 with error <= of 4.12373179849476332581927331869060197153106794890313064790444872469279893988095300747212765323833709430668036302832878225 E-106 number of the correct decimal digits = 103 ****** FINAL RESULT ******** C(q,a) with q = 29 and a = 2 is = 0.508500317625557705049905348149115779418662808679477529582211253026666805432743512848659513534276187962240769125231125813 with error <= of 2.01153246107080296221881743044258038171643412426853070391067797839923189871551360788352474995545899055728184724883098050 E-106 number of the correct decimal digits = 103 ****** FINAL RESULT ******** C(q,a) with q = 29 and a = 3 is = 0.694577329615368989033918322177038354858942667199854428637589264771795826226282514721604572811762480723232700559603161429 with error <= of 2.74761843172340759398104544947998772059659367038741263073511778973435112093092542750488744635124581507345284321633760427 E-106 number of the correct decimal digits = 103 ****** FINAL RESULT ******** C(q,a) with q = 29 and a = 4 is = 1.05743694584660943198470991255014669382365682622061089315116907541805532984400450827409480592488010592866354421327186478 with error <= of 4.18302342865461995602335934765968117026010299879351414009104486795977381574221973094194653535434454319045543412874312911 E-106 number of the correct decimal digits = 103 ****** FINAL RESULT ******** C(q,a) with q = 29 and a = 5 is = 0.845847006121980302569332219889171071651489356022125606679434585955695496262424681528602566361513852033299944666660808866 with error <= of 3.34601307204454175280878089721892955070037097356121121082138948010568010660256653781838255711807998156821642160087337766 E-106 number of the correct decimal digits = 103 ****** FINAL RESULT ******** C(q,a) with q = 29 and a = 6 is = 1.05652299942338722901241380515496216656840228045339200739355484277867381927857779830541900629915105140790949607386578002 with error <= of 4.17940802698373098146112160459882514696436800010397071698864715345873037895396079710550641552489158778619463309638941651 E-106 number of the correct decimal digits = 103 ****** FINAL RESULT ******** C(q,a) with q = 29 and a = 7 is = 0.905616445980894812584221303297536873383335252062332669125031077190849621077118190179668002270830400304626009252864354892 with error <= of 3.58244983381025922124338988313561982679183818396634642138470599427626519308600090807546769829238996313969767144361495301 E-106 number of the correct decimal digits = 103 ****** FINAL RESULT ******** C(q,a) with q = 29 and a = 8 is = 1.02789784034481955825630751011231751240184693571211560555276807921438172800359169864579291479296392248040816397534526240 with error <= of 4.06617223401760989565966915211137008864300446104090955219228835273858330745977727296358602284581847618583291568352054879 E-106 number of the correct decimal digits = 103 ****** FINAL RESULT ******** C(q,a) with q = 29 and a = 9 is = 1.04891285799855694998201041719177359194935486985835153038908015228231235996799639939275296057001933771365373592355438394 with error <= of 4.14930372620203895956214842527703507735503780249800683866918490754013289842813858902092641235168496769290046584406591987 E-106 number of the correct decimal digits = 103 ****** FINAL RESULT ******** C(q,a) with q = 29 and a = 10 is = 1.05054179880962183991537581936286905692815437863101947161516455114858460793016604924950456655373618632688305243688808199 with error <= of 4.15574751238081742396029391430060717241893502769948997131618533204421181390640784601234707387095529759991136802025724679 E-106 number of the correct decimal digits = 103 ****** FINAL RESULT ******** C(q,a) with q = 29 and a = 11 is = 0.960889018758370739802862478491619002818310491743489409232225625810759715398858013287831764909627586217187595562557870715 with error <= of 3.80109782771507773455732882254020016977563786726215650166350998811768623459766568990018754744143033810028827838217544986 E-106 number of the correct decimal digits = 103 ****** FINAL RESULT ******** C(q,a) with q = 29 and a = 12 is = 1.02818363363709451311375917411612413772193584410909223506365647367023641507096751423662995416891463014187349509163495027 with error <= of 4.06730277900379944432367239197547766874192325097228648055899838796833245527042518170921208915701669324731133454281779863 E-106 number of the correct decimal digits = 103 ****** FINAL RESULT ******** C(q,a) with q = 29 and a = 13 is = 0.968029149199932427563479711735481972421736439160481573326289640298390563430125881036893663041328096615316021362718382489 with error <= of 3.82934285266717082806509671275505045013014124812657171150344005663041133083558564482304111208176816555303048697308563515 E-106 number of the correct decimal digits = 103 ****** FINAL RESULT ******** C(q,a) with q = 29 and a = 14 is = 1.02974288909789819180195260414958632185490193800093557810434180215498447915555366615704470029082009653843497694993136706 with error <= of 4.07347090292780084330143156936263342627297345555356959125129737700454570789202427051089060709219784179354047124103927506 E-106 number of the correct decimal digits = 103 ****** FINAL RESULT ******** C(q,a) with q = 29 and a = 15 is = 1.04043519230898832914862088360377946557870250046855165246341647909848792449508323338617870640720276342428886930900967986 with error <= of 4.11576766115432586275942910265881131705095243096500696499647770949669668298677115501206038225167059340926274770300758700 E-106 number of the correct decimal digits = 103 ****** FINAL RESULT ******** C(q,a) with q = 29 and a = 16 is = 1.05232348294328911024757239829707872194132744443123206402707547211162640123805890312204571494672663251486949983466336644 with error <= of 4.16279552266915238407348228589881915402474052008016302212376212381835891018048596495042841169283011413953027466542633563 E-106 number of the correct decimal digits = 103 ****** FINAL RESULT ******** C(q,a) with q = 29 and a = 17 is = 0.997885045584065470693064747447342821271390912958285035069698191486600378632022836899700002084946547954268737788612508239 with error <= of 3.94744721297805915915162698615746231429834461594301624215225571282145192553351354182139266081397840369761105952289821213 E-106 number of the correct decimal digits = 103 ****** FINAL RESULT ******** C(q,a) with q = 29 and a = 18 is = 1.03346655526315158225613774266915528124603891267238420333810264956166500525690961695511036724584377065427046636294368689 with error <= of 4.08820103210564299984847512901488640082061009407639278796979097267988982518106098167921128797181354228310679710586961369 E-106 number of the correct decimal digits = 103 ****** FINAL RESULT ******** C(q,a) with q = 29 and a = 19 is = 0.997973166145836037735490211096584505142758529929096484180776766954697026846458170462061326261622973596561112876913973660 with error <= of 3.94779580149284513558928780341045511044039879896998590278511502128276715252352671105519789716423070787392007415899645444 E-106 number of the correct decimal digits = 103 ****** FINAL RESULT ******** C(q,a) with q = 29 and a = 20 is = 1.04625513029774029801261529887023086460701761852540306922710508775673817577865599813714562127812398218322172099164561018 with error <= of 4.13879025087552705663561574689710630910156846527523481474632691407869222826775073530302850505976404247777943903673911817 E-106 number of the correct decimal digits = 103 ****** FINAL RESULT ******** C(q,a) with q = 29 and a = 21 is = 1.04328051067027615578192730276886846660597997168438259035782021744155184298880304356120078455195552797538857776497647992 with error <= of 4.12702321016270583314735722520376699365827308939519814583952731259226936646717416113387796999494588623836347290987886456 E-106 number of the correct decimal digits = 103 ****** FINAL RESULT ******** C(q,a) with q = 29 and a = 22 is = 1.04667012400111533978797421441894743471364224461437531899032367869584282576304923269025398474277083566022492312259038612 with error <= of 4.14043188860227786501907848416979635259462586706685837660139164221693004839701210337558793081474497917028926063032666143 E-106 number of the correct decimal digits = 103 ****** FINAL RESULT ******** C(q,a) with q = 29 and a = 23 is = 1.00491985289567973700660367291606636647357078531680498275440022607548406324055550709382311744290827958523285131006113060 with error <= of 3.97527559926258936670563773210714547708998182232547509573441613760740915368924448622504791426660676563789372294409683467 E-106 number of the correct decimal digits = 103 ****** FINAL RESULT ******** C(q,a) with q = 29 and a = 24 is = 1.04253895764820168039027302351395342854043169341550963431240769607306703895543346485438320658095966545548599226220096834 with error <= of 4.12408976464889915932190586984424400561950826536310835888581962485114622210048467812626820857945076472117080500368884940 E-106 number of the correct decimal digits = 103 ****** FINAL RESULT ******** C(q,a) with q = 29 and a = 25 is = 1.04220154069782751673370645115978096256081100690423036872475082201648444632281671506782913385283184498757047363383635635 with error <= of 4.12275500609503541037807048312840446519648535533119916844779756840998276092171555053237438057888585107589070681196961551 E-106 number of the correct decimal digits = 103 ****** FINAL RESULT ******** C(q,a) with q = 29 and a = 26 is = 1.05128691214736995081105306870603386689617175864620921509826408753304475195852231789984685104953718218287280254582010672 with error <= of 4.15869504183970916379712981145625436687732915511422824343979518944121103039769280260623178241904594184303852877953950493 E-106 number of the correct decimal digits = 103 ****** FINAL RESULT ******** C(q,a) with q = 29 and a = 27 is = 1.05824983258396121349723910259888525861158704992232794739000191643023287530415471514671162169752415562278380592549653043 with error <= of 4.18623905704791648047681637799459297215920994541651357309089099200718503753794892387453873775344760525482563222142176625 E-106 number of the correct decimal digits = 103 ****** FINAL RESULT ******** C(q,a) with q = 29 and a = 28 is = 1.05794973894339014795596649179338871536268362455889608027185442256605874113963235009525484200907426662201976913374336595 with error <= of 4.18505194254976169602025786742265538089190922842406667336576436744029196510078888273461385961465734875255083305478300705 E-106 number of the correct decimal digits = 103 ****** PRODUCT VERIFICATION ******** VERIFICATION OF EQ. (24) OF THE PAPER The product of these constants is = 0.581511607979988211603576901033412243435914329315337209873950471618126823041224409887616557467579157294723385688457364761 The error from its expected value exp(-gamma)q/phi(q) is = 1.3758210268297397764 E-135 ****** COMPUTATION TIME ******** Time for the precomputation: 15 min, 51 sec, 560 millisec Time for the final computation: 0 min, 0 sec, 19 millisec Total computation time: 15 min, 51 sec, 579 millisec ****** END PROGRAM ******** ? init_MertensConstantsfinal(); mertensconstants(30) ************ A. LANGUASCO & A. ZACCAGNINI ************* ****** COMPUTATION OF THE MERTENS CONSTANTS MOD q; 3 <= q<= 100 ******* ****** WITH A PRECISION OF AT LEAST 100 DECIMAL DIGITS ******* q= 30 precomputations (quite long); depends on phi(q). Main parameters: for their meaning see the paper: L&Z Math. Comp. 78 (2009), 315-326. A= 3200 K= 26 M= 26 N= 26910 T= 116 ********** ERRORS ************** Errors: see the paper for their definitions and estimations err1= 8.55217308906104860612143334535552074735198055456538324579614300837951544695157607762204835797436970291998633791951626004 E-107 err2= 4.44713000631174527518314533958487078862302988837399928781399436435734803241481956036346514614667224551826435883439729008 E-107 U = 0.430408940964004038889433232950605425424570682540289654757006103992561215461131961361490264697219955406330542783242653564 err4= 1.76817742739390798295142600654404652141625287170835038671378892905110221995489700445790738549550903259716788139451627006 E-104 totalerr= 1.55852963917812067972863926207536354883319939688237854809147418312085919800498047508390628662467631522740536557986141066 E-104 used level of primes: B= min(A*q,9600) = 9600 ****** FINAL RESULT ******** C(q,a) with q = 30 and a = 1 is = 1.16170730885177565556766388616553568179641549352984042889352430808538924051864045492458143360474631295768255880182298330 with error <= of 1.81055527289534351247926608297360610880229448633783807863475996139436615459319191234230823237584201010302237786742545502 E-104 number of the correct decimal digits = 101 ****** FINAL RESULT ******** C(q,a) with q = 30 and a = 7 is = 0.988809082484472767817695168766970324369736571451830013769370176289983318396891861757013701498806613549364882703432366462 with error <= of 1.54108826254057391182622968574603107201578320034083930669934031659208968742156974684959548368075764368976260472839164662 E-104 number of the correct decimal digits = 101 ****** FINAL RESULT ******** C(q,a) with q = 30 and a = 11 is = 1.05468772487116630223204567674126940686184456387582956747452272839256453715457483458719729566408678872476501688188468785 with error <= of 1.64376207928905183298217925764864316597303497143086826078490479994742340150918830054013629757483191322885565195759346775 E-104 number of the correct decimal digits = 101 ****** FINAL RESULT ******** C(q,a) with q = 30 and a = 13 is = 1.07471347263826605877453236743681686161323981237018152775007692876814073173074903945143842019799743434172740003923554862 with error <= of 1.67497280073078187242767901643228874713651406796799634276305092183169408706876238404289464631347396043957647876109161565 E-104 number of the correct decimal digits = 101 ****** FINAL RESULT ******** C(q,a) with q = 30 and a = 17 is = 1.10633256732823875848688265885788410443949667277828298757273297377080476607158939512445097423481558301553873778550355004 with error <= of 1.72425209696908385566880586554892916659229772646362359058707607149359408956768892112729602527129860474537652442986965671 E-104 number of the correct decimal digits = 101 ****** FINAL RESULT ******** C(q,a) with q = 30 and a = 19 is = 1.13685107371939370423927192198361776686050512216719562200349713179287675174343327194258672769839948134061594361114106463 with error <= of 1.77181609372314574316803702770387201046312229449842946744279692357940048957221129825771111525712042638351879301468976554 E-104 number of the correct decimal digits = 101 ****** FINAL RESULT ******** C(q,a) with q = 30 and a = 23 is = 1.12488267008011170410847870276894470407605038958400249275719043200315527849263848852813541910750273310182934886539714651 with error <= of 1.75316298191767746109349828924585822924621876748805596653703292117539877471476703876424547765499937208149600747433424226 E-104 number of the correct decimal digits = 101 ****** FINAL RESULT ******** C(q,a) with q = 30 and a = 29 is = 1.14295053939114025524253848302388854357640474798409410869209521019590438058720224670554143735554461431555779279885961695 with error <= of 1.78132229175571222877408614584946207818396552216060275432834354651115520471673362474009096936633868301385633448317584674 E-104 number of the correct decimal digits = 101 ****** PRODUCT VERIFICATION ******** VERIFICATION OF EQ. (24) OF THE PAPER The product of these constants is = 2.10547306337581938684053705546580295037141395096932438057809653516907987652857113924826684600330384537744674128579390689 The error from its expected value exp(-gamma)q/phi(q) is = 5.503284107318959105 E-135 ****** COMPUTATION TIME ******** Time for the precomputation: 1 min, 34 sec, 154 millisec Time for the final computation: 0 min, 0 sec, 6 millisec Total computation time: 1 min, 34 sec, 160 millisec ****** END PROGRAM ******** ******/