Jacques Gélinas on Thu, 22 Mar 2018 02:06:53 +0100 |
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
RE: Derivatives of the Riemann xi function at s=1/2 |
Thanks for the pointers and the faster, simpler idea of using a variable number of terms in the summation. The Stieltjes constants can also be computed via DE integration from a Jensen integral representation (1895, Intermédiaire des Mathématiciens p. 346) for (s-1)zeta(s), which does not cause overflow with [oo,1] in Pari/GP: gn(n) = - Pi/n++ * intnum(t=0,[[1],1], real(log(1/2+I*t)^n) / cosh(Pi*t)^2 ); Jacques Gélinas, Ottawa De : Bill Allombert <Bill.Allombert@math.u-bordeaux.fr> Envoyé : 21 mars 2018 13:48 À : pari-users@pari.math.u-bordeaux.fr Objet : Re: Derivatives of the Riemann xi function at s=1/2 On Wed, Mar 21, 2018 at 04:51:19PM +0000, Jacques Gélinas wrote: > Sorry, the first paragraph with the Pari/GP related question got lost in my previous post. > > When using the integral representation of the derivatives of the xi(s) function, > an overflow occurs in the (double) exponential function, > *** exp: overflow in expo(). > and the clumsy cut-off below must be used. > > xik (k,m=12) = intnum( t=0, [[1],1], 2 * Mt(exp(2*t),m) * t^k ); > Mt (x,m=12) = 4 * x^(5/4) * sum(k=1, m, k^2*Pi * (k^2*Pi*x - 3/2) * eexp(-k^2*Pi*x) ); > eexp(x) = if( x < -178482300, 0, exp(x) ); > > Is there a better solution to this overflow (in fact underflow) problem ? Maybe put the cut-off in the index upperbound ? Mt(x,m=12) = { my(B=if(x<1,m,min(m, sqrt(178482300/(Pi*x))))); 4 * x^(5/4) * sum(k=1, B, k^2*Pi * (k^2*Pi*x - 3/2) * exp(-k^2*Pi*x) ); } At least this avoids multiplying by zero. Some reference for the Stieltjes constants: 1) you can compute the c_n in GP with lfun(1,1+x+O(x^(n+2))) or in 2.10: zeta(1+x+O(x^(n+2))) 2) see <http://beta.lmfdb.org/riemann/stieltjes/> for lots of value. You can compute the xi function with xi(s)=lfunlambda(1,s)*s*(s-1)/2 Cheers, Bill