| 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