Bill Allombert on Tue, 23 Apr 2024 17:00:57 +0200
|
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
Re: Computing Sathe-Selberg
|
- To: pari-users@pari.math.u-bordeaux.fr
- Subject: Re: Computing Sathe-Selberg
- From: Bill Allombert <Bill.Allombert@math.u-bordeaux.fr>
- Date: Tue, 23 Apr 2024 17:00:48 +0200
- Arc-authentication-results: i=1; smail; arc=none
- Arc-message-signature: i=1; a=rsa-sha256; d=math.u-bordeaux.fr; s=openarc; t=1713884450; c=relaxed/relaxed; bh=6Tw/4rFffFi2RRT0Vqv+CjHIcPJX/5jg/HTVBn8YdHk=; h=DKIM-Signature:Date:From:To:Subject:Message-ID:Mail-Followup-To: References:MIME-Version:Content-Type:Content-Disposition: In-Reply-To; b=CYX0XvRr2OHsFErGOP+KV6zRGU9JwPD8mgVL/oPBUplqOgYtsPatWIMY8VHOsjnP24x+Li5/C7CK4fHX1Pq64TmS8xMK2TK+QQ6NDIz4bb5eTF9TbiXs1IVy/JaE6KlXhbEHpfy0SuX+iirn7PdJCJkHiIY4mqdyerpM4ALdOIHvaS5mvjGkbjU224Ie+Q+WrfIDk05lY0zyDBXm1ufJDYDn9SPYPkdeCgPItdmEYyqjZWMN8UhkWk9jgY0wVfDiH2FWKH/HGLGJN+l9omwhKrc35RLHOn6EOfsl+0PPpBnWrRvgWGzV3HAKFrn5Xdt2Y7IyqOUL8wVByl6rKCvCVZCCrrsAo3yQ98wq9Hw/sUjqw3ByXrtbK4Y4Xng5YyAoMP7MeQDf8fnO0Y1JMG/ZXkOH0dCsUMWD7d/n/8HsLmD8hwhqaRcLxsD176HTueT7NoBDteZja0sOv/HZyhSFvlHtxl2qkc3qPhmQJ/+uJjICC8ZTQJQbwxUpnAM09audEx93iaoZjR5V7EP3dlzIjiQOv0YWz4J1+OveSqLlY/87k1jlRglE9ItYUVXyHoeUJhHWQAEcQswaAH7LbRI4bjHMJCqFnkbn02Y3JFAGb1JZfYRejAuFy5+4RpHfZOUXTtpo4QxpNBra52wZKJ4iVR3SBX3Q0H//jO/QbGsIy2w=
- Arc-seal: i=1; a=rsa-sha256; d=math.u-bordeaux.fr; s=openarc; t=1713884450; cv=none; b=uZUusoPs3w1LJYOIyk4rx5For0DCQRWg+OaNXQ/Lw9XcoELaVeI97hyAFa0+qpdD5oGCFNAM5wHdkMN7sgwwRQ2qbDIPfmdnpjMo4OTH0wg1XVFTguB7yxf3iRp5xJLkx0zABH7MU0V1EQruCXMPCq4zsG7Vr++4NPdFKWMbOxpuovXFqmdJjjoolHgVJmxtIDMViVExMz3D1d5fyZaoElAWhLMQDbTLAy4X20o0gkAvPpo2sFgic7meYufV6hRS9Eeu5JpliIwRBFYhJ+BSD8DY4JjBkKqVEcwhlTp1Qo20EZJKU5Kh6iHyie8oyDoMBOEvnpU0Jy2EGUTvylMDR5qOhRp+UnJw1U56b3qUw8zE1MdWyhPUi55VpLI1IZKSTIEkxCBkR7Jl7mDbOEx3ci8UZa3A8W2k0/K0qVHNeeaYXPxIGZcKeqRTRCc628j9o0Wwr7BHLLRzzXc5NboyWZP0hIdDrr/RTYXGP/Y5nYAzSk4iBI0Tsrb81BsV3Xd5M331Vz6lueKHRKYSrRjA+XgT3eXf5aBwByAQwSzFKQVn5LPp5dK12EcyH7dox3oHij41Wd+PzXgap4w54OnipTScAgv/LyklPWc0gQfV849f6PTZ2EkNIWaoPWERV9R7Khy1QC/XhN+BC9WjIr5i8In6dE2zUqcYV3YTBp92OQw=
- Authentication-results: smail; dmarc=none header.from=math.u-bordeaux.fr
- Authentication-results: smail; arc=none
- Delivery-date: Tue, 23 Apr 2024 17:00:58 +0200
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=math.u-bordeaux.fr; s=2022; t=1713884450; bh=6Tw/4rFffFi2RRT0Vqv+CjHIcPJX/5jg/HTVBn8YdHk=; h=Date:From:To:Subject:References:In-Reply-To:From; b=WbL4TcCPyr5I4BvSMGNz1zreq9WY37PJlwCcG9NkCEwlNXZAc28M+8OCqv9BZ1FNn pqpbbwBRp1a8+xqm77/KnCzOnBIWB8CmkpyBKNJ90fRvpEr9bIBvY5uo3Rg0CvMBKV pFC+IZnpWS+RUd9U/4oeFGP7VzbrfOtwe+oj79MpL5ioLtEPa48o/2qIqwNQH/1woq pjGj57PXCSNpCzzX0h3Rnn0p72zl0IyfDpNOWxJhoU/lWIh57TOMvCx3k1ZDePGeh7 Qi6Qzb3KFQ8dyC1JIrcT15wZ9GL46KgL95Mh8+LLBYdLZMvHW35Gg33GXuAKvbvviT 4h8XPi1pmrweBXi07JbPbeSKdBhBxBKbmJdDbpwtPKZnlJTYXos+jkKL3bZeoV6kVw sRjQIVb1v+1VObCD0QjvqYlsj8LkrSWUIMIS1yQdf6W/cAH15vyEEsYmC1YjPPcdvO bftnVOkSQwmDk5EwNVQJjRfxKyYwdBdltwy8OIojOYRNpiTMnfy7bhgrD9mlFmucNv 8zdUXBf0yg+fsa7yMtindN5S2QFaK/b/mKMkI2pC1ZAVXFMG2z3Mk714j2FSD9mBR9 vuPF0u50nPjR+DI+YTkJgZ5ptHfgp2UtyybIOozt/ju7+dlgmrWYBO/zdO6WQM6Kue ZbpjwAfN4nupW1v/cRgxNgzQ=
- In-reply-to: <CANXmBjzQs_3gyNR0iu5T3BL19O3jMEyD3Eu5yEKmybpigDM6Qg@mail.gmail.com>
- Mail-followup-to: pari-users@pari.math.u-bordeaux.fr
- References: <CANXmBjzQs_3gyNR0iu5T3BL19O3jMEyD3Eu5yEKmybpigDM6Qg@mail.gmail.com>
On Tue, Apr 23, 2024 at 08:04:33AM -0400, Charles Greathouse wrote:
> The Sathe-Selberg theorem uses a function G to improve the range of the
> classical Landau estimates for the density of k-almost primes. It is an
> infinite product over primes; its truncation is
>
> G(z,lim=1e4)=prodeuler(p=2,lim,(1+z/p)*(1.-1/p)^z)/gamma(z+1)
>
> What is a better way to compute this?
You can try this:
G(z)=
{
my(a=max(2,ceil(abs(z))));
my(lim=4*a);
my(e=getlocalbitprec());
localbitprec(2*e);
my(S=sum(n=2,e,-(z+(-z)^n)/p^n/n));
prodeuler(p=2,lim,(1+z/p)*(1.-1/p)^z)*exp(sumeulerrat(S,,lim+1))/gamma(z+1);
}
If z is a small integer, you can use prodeulerrat:
Gi(z)=prodeulerrat((1+z/p)*(1-1/p)^z)/gamma(z+1)
if z=a/b is a rational of small height, you can also do:
Gr(z)=
{
my(a=numerator(z),b=denominator(z));
prodeulerrat((1+z/p)^b*(1-1/p)^a)^(1/b)/gamma(z+1)
}
Cheers,
Bill.