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