Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

arb #135

Open
orkolorko opened this issue Jun 27, 2019 · 11 comments
Open

arb #135

orkolorko opened this issue Jun 27, 2019 · 11 comments

Comments

@orkolorko
Copy link

I'm currently working on a wrapper for arb (pretty similar to the wrapper for mpfi).
Is there any interest for the library?

@NAThompson
Copy link
Contributor

I love Arb! But there seems to be some differences in goals. Arb uses arbitrary precision interval arithmetic for evaluation of special functions, whereas Multiprecision is purely for high-precision arithmetic. Presumably you could instantiate a boost::numeric::interval on a boost::multiprecision type and then use boost::math to evaluate special functions using the interval, but I suspect there is much pain associated with that route.

Also, doesn't arb just use MPFR? Boost.Multiprecision already has an MPFR wrapper.

@jzmaddock
Copy link
Collaborator

Actually I think this could work rather well: we already have a wrapper for mpfi and support for interval types within the library - so I would say to go for it :)

@orkolorko
Copy link
Author

Answering NAThompson:

Arb is a multiprecision library for validated numerics, as mpfi.
The difference is that, while MPFI stores an interval as two endpoints, ARB stores an interval as a center point and a radius.
So, ARB is a multiprecision library.

Both libraries have some flaws and some advantages... since there is already a boost multiprecision support for MPFI, I think ARB would also be cool :-)

@NAThompson
Copy link
Contributor

@orkolorko : Got it; I guess that means that there's some significant focus on the complex plane?

@orkolorko
Copy link
Author

orkolorko commented Jun 27, 2019

@NAThompson
ARB has two certified types, the arb type for real balls and the acb type for complex balls.
I'm initially thinking of wrapping the real balls and see what is possible to do for complex balls.

@NAThompson
Copy link
Contributor

@orkolorko : I recant my previous statement! This is a cool idea.

@jzmaddock
Copy link
Collaborator

Ping? Any progress?

If it helps any, there is at least now a short guide to adding new backends: 6f73233

@ckormanyos : Is this yet another possible for GSOC (and yes I know we have more than enough already, just flagging it up).

@orkolorko
Copy link
Author

orkolorko commented Mar 11, 2020 via email

@ckormanyos
Copy link
Member

ckormanyos commented Mar 11, 2020

Is this yet another possible for GSOC...

Yes. But indeed, as you mention, we have more fascinating ideas than we have time and capacity at the moment to fully handle them all with the depth these issues deserve.

One thing to consider may be to combine 6f73233 with either the issue here, as mentioned, or with quad_double and friends in #190

ckormanyos referenced this issue Mar 11, 2020
plus a "skeleton" backend designed to be easily modified to support a new type.
@orkolorko
Copy link
Author

Another interesting idea would be to introduce some error-free multiprocessing type (similar to qd, but can be made much more general, i.e., Campary)

@kaba2
Copy link

kaba2 commented Mar 17, 2022

Just wanted to say I'd love Arb support in Boost.Multiprecision, and was just about to suggest it. Has there been any progress?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants