flintlib / arb

Arb has been merged into FLINT -- use https://github.com/flintlib/flint/ instead
http://arblib.org/
GNU Lesser General Public License v2.1
455 stars 137 forks source link

add zeta zeros example #347

Closed p15-git-acc closed 2 years ago

p15-git-acc commented 3 years ago

I'm not sure exactly what this should do. See https://github.com/fredrik-johansson/arb/issues/335#issuecomment-699910375.

rudolph-git-acc commented 3 years ago

Just chipping in, hope not being too pedantic here :-)

The function acb_dirichlet_platts_local_hardy_z_zeros is an extremely powerful tool for anybody who wants to study the behaviour of the non-trivial zeros of zeta(s), especially at greater heights. It is very easy to use, the complicated parameters of multieval are shielded from the user and have been pre-optimised. I believe this function is unequalled on the web.

So, being a user myself, who got seduced into ARB also by the quite spectacular showcases in the example directory, I could think of the following functionality for a demo program:

Use n=k*10^m:

e.g.: ./testplatt 1 10 5000 1

"Starting from the 10^10th zero of the Hardy Z(t) function, using a precision of 256 bits and 1 thread;"
"from the requested 5000 next zeros, 5000 consecutive zeros have been successfully isolated in 229 secs."

zero 1  (using arb_printn(ordinate, 60, ARB_STR_NO_RADIUS) or just showing the ARB-radius).
zero 2
zero 3
(...4994 zeros suppressed...)
zero_4998
zero_4999
zero_5000

And to demonstrate its power, show two real life examples like f.i.:

./testplatt 5 16 10000 8

./testplatt 1 22 17500 32

And add a short explanation that increasing prec could help increase the number of zeros isolated as well as their accuracy.

p15-git-acc commented 3 years ago

I believe this function is unequalled on the web.

There's lcalc by Rubinstein and zetacalc by Hiary and Bober. There's also code by @djplatt with the windowed zeta zeros implementation uploaded last month, but I'm afraid to look at it because of licensing reasons.

fredrik-johansson commented 2 years ago

Added an example program in commit ee4ca3374fad21e6a4ef37de0a6b5e66fde8ae97 but it doesn't do anything interesting with Platt's algorithm.

If either of you is still around @p15-git-acc @rudolph-git-acc maybe you can look at it?

rudolph-git-acc commented 2 years ago

Hi Fredrik,

Still around and frequently visiting the ARB-GitHub. Thanks for adding some impressive recent speed-ups and my sincere congrats on ARB’s 10 year anniversary !

I had noted that the issue:  “use fmpz instead of slong for the J parameter of windowed zeta zeros #354”, has remained uncommitted for a long time. Not sure what is causing it to get stuck in the commit-process.

It was originally submitted by mysterious user P15, who after making some magical contributions suddenly disappeared again like a true magician.

He/she also included this demo program that looks slightly different from yours:  https://github.com/fredrik-johansson/arb/pull/354/commits/9d0ac48f3b54eb1f454ce66fd9c6ef514c10369c#diff-895daae7d4cd2514bb3b696b49f0da40629aa5946154e7d08b245f25f6650576

It automatically selects the Platt-method (called the “large height” method) above n~1e15 or you can force it by selecting -platt as a parameter.

Last year, I actually tested this demo program on a Raspberry Pi 400 and managed to generate 100 non-trivial zeros starting from the 10^18th zero using Platt’s method, firing on all 4 available threads.

The Pi got a bit hot, but successfully produced the required result in a very decent time (in case of interest: specific installation tweaks to get ARB working a PI attached).

Kind regards,

Rudolph  

From: Fredrik Johansson @.> Reply to: fredrik-johansson/arb @.> Date: Monday, 23 May 2022 at 20:46 To: fredrik-johansson/arb @.> Cc: rudolph-git-acc @.>, Mention @.***> Subject: Re: [fredrik-johansson/arb] add zeta zeros example (#347)

Added an example program in commit ee4ca33 but it doesn't do anything interesting with Platt's algorithm.

If either of you is still around @p15-git-acc @rudolph-git-acc maybe you can look at it?

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you were mentioned.Message ID: @.***>

HOW TO INSTALL ARB ON A RASPBERRY PI

Arb itself can be downloaded here: https://github.com/fredrik-johansson/arb/releases

Arb has the following dependencies:

GMP (http://www.gmplib.org) 5.1.0 or later. MPFR (http://www.mpfr.org) 3.0.0 or later. FLINT (http://www.flintlib.org) version 2.5

Download and unpack all of the above.

sudo apt install m4 (probably already available)

sudo su

usr/local/lib/

mkdir mathlibs

cd GMP-x.x: For the config: chmod +x configure ./configure For the make: chmod +x mpn/m4-ccas make install

cd MPFR-x.x ./configure make install

cd FLINT-x.x (takes long) ./configure make install

cd ARB-x.x ./configure make install

To compile with links to the required libraries:

gcc c-file.c -o runname —lgmp larb -lflint -lmpfr -lpthread

LD_LIBRARY_PATH = /usr/local/lib export LD_LIBRARY_PATH

To run the compiled code: ./runname +parameters

fredrik-johansson commented 2 years ago

Oops, I must have forgotten about #354. I may as well try to review & merge that version.

Good to hear from you again Rudolph!

fredrik-johansson commented 2 years ago

I remember now why I didn't merge it: the CI fails on 32-bit.

fredrik-johansson commented 2 years ago

Fixed and merged.

rudolph-git-acc commented 2 years ago

Great. In the spirit of cleaning up, Issues 320 and 348 could now be closed as well. The parameters in Platt’s method were successfully tuned and tested to work up to the 10e25th zero.

Kind regards,

Rudolph.

From: Fredrik Johansson @.> Reply to: fredrik-johansson/arb @.> Date: Tuesday, 24 May 2022 at 14:00 To: fredrik-johansson/arb @.> Cc: rudolph-git-acc @.>, Mention @.***> Subject: Re: [fredrik-johansson/arb] add zeta zeros example (#347)

Closed #347 as completed.

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you were mentioned.Message ID: @.***>

fredrik-johansson commented 2 years ago

Done!