arb
arb copied to clipboard
C++11 version of Arb and its dependencies
Hi Fredrik,
I am one of the developers of the Anima library at INRIA and maintained by @ocommowi. This is a C++11 library for medical image processing.
It occurs relatively frequently in our line of work to resort to special functions like hypergeometric or Bessel's and to numerical integration. I have been using your library for some time and I am very impressed by your work and how well it works compared to other solutions I found in the past.
We are considering to make ARB a permanent dependency of Anima. However, we have strict rules pertaining to dependencies we allow. Specifically, we need any dependency to be C++11 compliant, which implies in particular the presence of a CMakeList file and the use of the new C++11 thread class instead of the not anymore maintained pthread library.
Do you think it would be possible to get ARB satisfy this (in which case we would be more than happy to help you)? Do we absolutely need to also add the GMP, MPFR and FLINT dependencies as well? In case that would not be of interest to you or you would not feel that it is a priority, are you aware of any initiative that goes in this direction of making a C++11 compliant version of ARB and its dependencies?
Thanks, -Aymeric
I don't quite understand what is meant by C++11 compliance here. Arb is a C library, not C++. Interfacing with C should not be a problem from any version of C++. If there are some specific incompatibilities, we can of course try to fix them. But Arb itself is not changing languages to C++ (and I don't understand why this would be a requirement for your dependencies). In particular, it will not be able to use C++ features like the thread class.
It is already possible to build Arb with CMake, but I don't think GMP and MPFR support this, and it's highly unlikely that they will change their build systems to CMake.
Is there a reason why you have to build all your dependencies using CMake? This also sounds strange to me. It should be possible to install GMP+MPFR+FLINT+Arb via the system package manager and then just list them as dependencies in your CMake builds.