Coder Social home page Coder Social logo

bluescarni / mppp Goto Github PK

View Code? Open in Web Editor NEW
282.0 19.0 25.0 44.95 MB

Multiprecision for modern C++

License: Mozilla Public License 2.0

CMake 1.98% C++ 97.15% Python 0.47% Batchfile 0.01% Shell 0.39%
multiprecision gmp math-bignum math computer-algebra c-plus-plus c-plus-plus-11 c-plus-plus-14 c-plus-plus-17 mpfr

mppp's Introduction

mp++

Build Status Build Status language language language Code Coverage Join the chat at https://gitter.im/bluescarni/mppp Anaconda-Server Badge


Multiprecision for C++
Explore the docs »

Report bug · Request feature · Discuss

mp++ is a C++11/14/17/20 library for multiprecision arithmetic, featuring:

  • arbitrary-precision integers,
  • arbitrary-precision rationals,
  • quadruple-precision floats,
  • quadruple-precision complex numbers,
  • arbitrary-precision floats,
  • arbitrary-precision complex numbers.

Design goals include:

  • excellent performance for small integer and rational operands,
  • easy embeddability in computer algebra systems and generic C++ libraries,
  • a large collection of arbitrary-precision special functions,
  • an ergonomic API based on modern C++ idioms.

Design non-goals include:

Built on top of the GNU multiprecision stack (GMP, MPFR, MPC), mp++ was initially conceived as a GMP wrapper with special focus on performance with small operands. In particular, a small buffer optimisation and custom implementations of basic mathematical primitives are instrumental in achieving a performance increase, with respect to GMP and other integer multiprecision libraries, which can be substantial (see the benchmarks section of the documentation).

Over time, mp++ has accrued many additional features, including multiprecision real and complex number types, and an expanding library of special functions (built in part on top of the excellent Arb library).

mp++ is a spinoff of the Piranha library, released under the MPL2 license. If you are using mp++ as part of your research, teaching, or other activities, we would be grateful if you could star the repository and/or cite our work. The DOI of the latest version and other citation resources are available at this link.

The documentation is available here.

mppp's People

Contributors

andrewcorrigan avatar bluescarni avatar darioizzo avatar gitter-badger avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

mppp's Issues

[[maybe_unused]] ::mp_limb_t br;

I tried compiling from a project that includes mppp as a dependency via obake. I see that mppp suppresses a lot of warnings, but when I set -Wall in my project, I encountered the following warning:

/mppp/include/mp++/integer.hpp:2699:25: warning: variable 'br' set but not used [-Wunused-but-set-variable]
            ::mp_limb_t br;
                        ^
/mppp/include/mp++/integer.hpp:2715:25: warning: variable 'br' set but not used [-Wunused-but-set-variable]
            ::mp_limb_t br;
                        ^

Would it make sense to specify [[maybe_unused]] here?

            [[maybe_unused]] ::mp_limb_t br;

[FEATURE] Vcpkg support

Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
I’d like to use your library through vcpkg.

Describe the solution you'd like
A clear and concise description of what you want to happen.
I’ve added a port request in vcpkg : microsoft/vcpkg#33113

Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
I may try to do the port myself.
Additional context
Add any other context or screenshots about the feature request here.

All tests fail in static initialization

The following tests FAILED:
	  1 - concepts (ILLEGAL)
	  2 - global_header (ILLEGAL)
	  3 - integer_abs (ILLEGAL)
	  4 - integer_addsub_ui_si (ILLEGAL)
	  5 - integer_arith (ILLEGAL)
	  6 - integer_arith_ops_01 (ILLEGAL)
	  7 - integer_arith_ops_02 (ILLEGAL)
	  8 - integer_arith_ops_03 (ILLEGAL)
	  9 - integer_basic_01 (ILLEGAL)
	 10 - integer_basic_02 (ILLEGAL)
	 11 - integer_basic_03 (ILLEGAL)
	 12 - integer_bin (ILLEGAL)
	 13 - integer_bitwise (ILLEGAL)
	 14 - integer_caches (ILLEGAL)
	 15 - integer_divexact (ILLEGAL)
	 16 - integer_divexact_gcd (ILLEGAL)
	 17 - integer_even_odd (ILLEGAL)
	 18 - integer_fac (ILLEGAL)
	 19 - integer_gcd (ILLEGAL)
	 20 - integer_get_mpz_t (ILLEGAL)
	 21 - integer_hash (ILLEGAL)
	 22 - integer_is_zero_one (ILLEGAL)
	 23 - integer_limb_size_nbits (ILLEGAL)
	 24 - integer_literals (ILLEGAL)
	 25 - integer_neg (ILLEGAL)
	 26 - integer_nextprime (ILLEGAL)
	 27 - integer_pow (ILLEGAL)
	 28 - integer_probab_prime_p (ILLEGAL)
	 29 - integer_rel (ILLEGAL)
	 30 - integer_roots (ILLEGAL)
	 31 - integer_set_zero_one (ILLEGAL)
	 32 - integer_sqr (ILLEGAL)
	 33 - integer_sqrm (ILLEGAL)
	 34 - integer_stream_format (ILLEGAL)
	 35 - integer_swap (ILLEGAL)
	 36 - integer_tdiv_q (ILLEGAL)
	 37 - integer_view (ILLEGAL)
	 38 - rational_abs (ILLEGAL)
	 39 - rational_arith (ILLEGAL)
	 40 - rational_arith_ops_01 (ILLEGAL)
	 41 - rational_arith_ops_02 (ILLEGAL)
	 42 - rational_arith_ops_03 (ILLEGAL)
	 43 - rational_basic_01 (ILLEGAL)
	 44 - rational_basic_02 (ILLEGAL)
	 45 - rational_binomial (ILLEGAL)
	 46 - rational_hash (ILLEGAL)
	 47 - rational_inv (ILLEGAL)
	 48 - rational_is_zero_one (ILLEGAL)
	 49 - rational_neg (ILLEGAL)
	 50 - rational_pow (ILLEGAL)
	 51 - rational_rel (ILLEGAL)
	 52 - rational_stream_format (ILLEGAL)
	 53 - rational_literals (ILLEGAL)
	 54 - real_arith (ILLEGAL)
	 55 - real_bessel (ILLEGAL)
	 56 - real_basic (ILLEGAL)
	 57 - real_cmp (ILLEGAL)
	 58 - real_constants (ILLEGAL)
	 59 - real_gamma (ILLEGAL)
	 60 - real_hyper (ILLEGAL)
	 61 - real_io (ILLEGAL)
	 62 - real_logexp (ILLEGAL)
	 63 - real_neg_abs (ILLEGAL)
	 64 - real_operators (ILLEGAL)
	 65 - real_pow (ILLEGAL)
	 66 - real_roots (ILLEGAL)
	 67 - real_get_set_z_2exp (ILLEGAL)
	 68 - real_trig (ILLEGAL)
	 69 - real_intrem (ILLEGAL)
	 70 - real_other_specfunc (ILLEGAL)
	 71 - real_literals (ILLEGAL)
	 72 - real_mul_div_2 (ILLEGAL)
	 73 - real_polylogs (ILLEGAL)
	 74 - complex_basic (ILLEGAL)
	 75 - complex_arith (ILLEGAL)
	 76 - complex_operators (ILLEGAL)
	 77 - complex_cmp (ILLEGAL)
	 78 - complex_mul_div_2 (ILLEGAL)
	 79 - complex_roots (ILLEGAL)
	 80 - complex_pow (ILLEGAL)
	 81 - complex_logexp (ILLEGAL)
	 82 - complex_rootofunity (ILLEGAL)
	 83 - complex_trig (ILLEGAL)
	 84 - complex_hyper (ILLEGAL)
	 85 - complex_literals (ILLEGAL)
	 86 - complex_io (ILLEGAL)
	 87 - type_name (ILLEGAL)
	 88 - utils (ILLEGAL)
	 89 - type_traits (ILLEGAL)
Errors while running CTest

The stack is:

Program received signal SIGILL, Illegal instruction.
0x00000008015c35a4 in ?? () from /usr/local/lib/libntl.so.43
(gdb) bt
#0  0x00000008015c35a4 in ?? () from /usr/local/lib/libntl.so.43
#1  0x000000080068a64d in objlist_call_init (list=<optimized out>, lockstate=<optimized out>) at /usr/src/libexec/rtld-elf/rtld.c:2744
#2  0x00000008006893a4 in _rtld (sp=<optimized out>, exit_proc=0x7fffffffe810, objp=0x7fffffffe818) at /usr/src/libexec/rtld-elf/rtld.c:781
#3  0x0000000800687019 in rtld_start () at /usr/src/libexec/rtld-elf/amd64/rtld_start.S:39
#4  0x0000000000000000 in ?? ()
(gdb) 

FreeBSD 12.1

Alternative (better?) precision computations & approximations

Is your feature request related to a problem? Please describe.
I'm always frustrated when old algorithms for increasing/taming precision are being used instead of newer better ones 😉.

Describe the solution you'd like
A clear and concise description of what you want to happen.

https://blog.sigplan.org/2021/08/26/high-performance-correctly-rounded-math-libraries-for-32-bit-floating-point-representations/

https://github.com/rutgers-apl/rlibm-32

Herbie

Pherbie (actually extended Herbie with fully automated trade-off search between precision and performance)

Describe alternatives you've considered
There are no alternatives - the entire point of this lib is to increase precision.

Additional context
N/A

One testcase fails

On FreeBSD, I am getting one testcase failure:

25/61 Test #25: integer_pow ......................***Failed    0.18 sec
...
98% tests passed, 1 tests failed out of 61

FreeBSD 11.1 amd64
Version 0.9

Use mp++ types in armadillo (proof of concept)

The following repo shows that armadillo can be monkey-patched to support mp++ types as elements (integer and rational, but others could be easily added).

https://github.com/chatziko/arma-mppp

A variety of basic operations are supported, and I'm sure others could be added.

Of course I wouldn't expect performance similar to BLAS, but using armadillo to do linear algebra with mp++'s exact arithmetic could be super useful. I'd love to see something like this included in mp++, I think it's a natural fit for armadillo!

libarb is has been rolled into libflint-arb. CMakeFileList.txt needs to be updated.

I was just building your lib when I found out libarb has been merged into Flint. Debian 12 supplies libflint-arb2 and libflint-arb-dev packages. They install arb.h and the rest of the old arb.

I couldn't figure out your cmake setup to change that. It would depend on the version of flint >2.x. The new arb files seem to be installed pretty much where you would expect, however the cmake bombs when I try to build WITH_ARB.

Thanks.

[BUG] 1.0.0: Build fails with fmt: no member named 'throw_format_error' in namespace 'fmt'

Describe the bug

In file included from /usr/ports/math/mppp/work/mppp-1.0.0/src/detail/arb.cpp:46:
In file included from /usr/ports/math/mppp/work/mppp-1.0.0/include/mp++/real.hpp:51:
/usr/ports/math/mppp/work/mppp-1.0.0/include/mp++/detail/fmt.hpp:45:9: error: no member named 'throw_format_error' in namespace 'fmt'; did you mean 'fmt::detail::throw_format_error'?
        fmt::throw_format_error("Invalid format");
        ^~~~~~~~~~~~~~~~~~~~~~~
        fmt::detail::throw_format_error
/usr/local/include/fmt/core.h:630:27: note: 'fmt::detail::throw_format_error' declared here
FMT_NORETURN FMT_API void throw_format_error(const char* message);
                          ^

Version: 1.0.0
libfmt-9.1.0
clang-16
FreeBSD 13.2

CMake generates a solution with Multi Byte Character Set

The generated solution uses the multi-byte character set. Although this seems easier, it generates inefficient code as any interaction with the OS is converted to and from UNICODE, as windows is strictly UNICODE internally (their messy flavour of it). Not sure whether this is extremely important, but I thought I'd just mention it.

In the meanwhile, I've sorted out (with Brian) some issues related to MPIR and have now broadwell_avx native libs [and MPFR, also Brian's]. Now I've sorted the whole thing out [on my end], the issues I referred to in #175 have gone away, all is good and they lived happily ever after ;-).

compilation errors with Clang 6,7,8

I was just testing compilation of my code on older versions of clang and ran into the following compilation errors in mp++. These errors occur with either -std=c++2a or -std=c++17.

I have no issues with clang-9 or clang-10. I assume these are just compiler bugs, but the documentation seemed to indicate these versions of clang are still supported, so I thought I'd share this information with you.

/obake/mppp/include/mp++/detail/integer_literals.hpp:293:70: error: variable 'arr' cannot be implicitly captured in a lambda with no capture-default specified
            const auto cur_digit = digit_to_value<base, ::mp_limb_t>(arr[i - 1u]);
                                                                     ^
/obake/mppp/include/mp++/detail/rational_literals.hpp:27:1: note: in instantiation of function template specialization 'mppp::detail::integer_literal_impl<1, '1'>' requested here
MPPP_DECLARE_RATIONAL_UDL(1)
^
/obake/mppp/include/mp++/detail/rational_literals.hpp:24:36: note: expanded from macro 'MPPP_DECLARE_RATIONAL_UDL'
        return rational<n>{detail::integer_literal_impl<n, Chars...>()};                                               \
                                   ^
/include.h:59:62: note: in instantiation of function template specialization 'mppp::literals::operator""_q1<'1'>' requested here
auto operator""_q() { using namespace mppp::literals; return operator ""_q1<Chars...>(); }
                                                             ^
/obake/mppp/include/mp++/detail/integer_literals.hpp:249:24: note: 'arr' declared here
        constexpr char arr[]
                       ^
/obake/mppp/include/mp++/detail/integer_literals.hpp:289:23: note: lambda expression begins here
    auto parse_limb = [](std::size_t begin, std::size_t end) {

[BUG] MSVC C++20 compilation errors

Describe the bug

I regularly compile with Clang and GCC in C++20 mode and MSVC in C++17 mode without issue. I just tried to also compile MPPP in C++20 mode on MSVC using

Microsoft Visual Studio Professional 2019
Version 16.11.5

with flags:

/std:c++20 /Zc:__cplusplus /permissive- /EHsc

Resulting in compilation errors:

\mppp\src\detail\mpfr_arb_cleanup.cpp(117,51): error C2127: 'mppp::detail::`anonymous-namespace'::mpfr_tl_cleanup_inst': illegal initialization of 'constinit' entity with a non-constant expression

\mppp\src\integer.cpp(149,45): error C2127: 'mppp::detail::`anonymous-namespace'::mpz_alloc_cache_inst': illegal initialization of 'constinit' entity with a non-constant expression

To Reproduce
Compile MPPP with MSVC using /std:c++20.

Workaround

I worked around the errors by modifying the definition of MPPP_CONSTINIT as follows, upon which MPPP compiled successfully.

// C++20 constinit.
#if defined(__cpp_constinit)

#define MPPP_CONSTINIT //constinit

#else

#define MPPP_CONSTINIT

#endif

Expected behavior

No compilation errors

Environment (please complete the following information):

  • OS: Windows
  • Installation method: Source
  • Version: 0.21

benchmarks vs. common types

Is it possible to add the common int64 and double and GCC's __int128 to the benchmark page? For my application 95% of the numbers will fit in an int64. On occasion I need to pass and operate on some squares of those numbers. I'm wondering if the mp++ integer is close enough to int64 performance for small numbers that I can just use that type everywhere.

arbitrary-precision integers are capped at 64 bytes?

Instantiating the template integer with size higher than 64 results in this error:

static_assert failed due to requirement '70UL > 0U && 70UL <= 64U' "Invalid static size for integer."

Why are arbitrary-precision integers capped?

Cannot build mp++ 0.9

Hi,

I'm trying to install the version 0.9 of mp++ to make piranha work but I meet some problems to build the former.

It's related to the issue bluescarni/piranha#150 .

I had to make a cmake . command before the cmake --build . --target install because of the missing of CMakeCache.txt . And yet there are errors.
Here is the one for the original cmake . command :
CMake Error at C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.19/Modules/FindPackageHandleStandardArgs.cmake:218 (message): Could NOT find GMP (missing: GMP_INCLUDE_DIR GMP_LIBRARY)

And here's the one for the next command :
MSBUILD : error MSB1009: Project file does not exist. Switch: install.vcxproj

Can you please tell me what I'm doing wrong?

Axel

clang-cl ICEs on construction of const qualified structured binding

integer.hpp:2841

const auto [size, asize] = bl_read_size_asize(src);

ICEs clang-cl trunk (Bug filed).

Is not your problem I know [AFAICS, the code is correct and compiles with VC], but the const is un-necessary and taking it out:

auto [size, asize] = bl_read_size_asize(src);

makes no difference whatsoever, but does make that bit of code compile with clang-cl again.

When quadmath include dir is not found ...

When including mppp in my project, since the quadmath header is not found by cmake everything stops. I do have the header in the folder /usr/lib/gcc/x86_64-pc-linux-gnu/8.1.0/include
which is included by default when compiling using gcc. That directory is not searched by cmake find_path.

Looking at the file https://github.com/bluescarni/mppp/blob/master/cmake/FindQuadmath.cmake:

find_path(Quadmath_INCLUDE_DIR NAMES quadmath.h)
find_library(Quadmath_LIBRARY NAMES quadmath)

if(NOT Quadmath_INCLUDE_DIR OR NOT Quadmath_LIBRARY)
    cmake_push_check_state(RESET)
    list(APPEND CMAKE_REQUIRED_LIBRARIES "quadmath")
    CHECK_CXX_SOURCE_COMPILES("
        #include <quadmath.h>
        int main(void){
            __float128 foo = ::sqrtq(123.456);
        }"
    Quadmath_USE_DIRECTLY)
    cmake_pop_check_state()
    if (Quadmath_USE_DIRECTLY)
        set(Quadmath_INCLUDE_DIR "unused" CACHE PATH "" FORCE)
        set(Quadmath_LIBRARY "quadmath" CACHE FILEPATH "" FORCE)
    endif()
endif()

find_package_handle_standard_args(Quadmath DEFAULT_MSG Quadmath_LIBRARY Quadmath_INCLUDE_DIR)

In my archlinux system (gcc (GCC) 8.1.0) findpath fails, so Quadmath_INCLUDE_DIR does not get defined. Later CHECK_CXX_SOURCE_COMPILES also fails as libquadmath is not linked and sqrtq is not found. As a consequence find_package_handle_standard_args fails resulting in and error.

is it necessary to look for the include dir since quadmath.h is anyway in the system path of the compiler? Or is there a better way of setting this up?

Support __int128_t, __uint128_t types

Hi,

The __int128_t and __uint128_t types are non standard C/C++ extensions supported by Clang and GCC (and I guess by the Intel Linux compiler as well). Currently they seem to be not supported:

$ make

src/P2.cpp: In function ‘primesum::maxint_t {anonymous}::P2_OpenMP_master(primesum::int128_t, int64_t, int)’:
src/P2.cpp:150:24: error: conversion from ‘__int128’ to non-scalar type ‘primesum::maxint_t {aka mppp::integer<4ul>}’ requested
   maxint_t prime_sum = n128

Boost multiprecision supports the __int128_t and __uint128_t types, I was hoping to be able to use mp++ instead of Boost multiprecision in my primesum program and get a performance benefit.

Add support for decimal floats

Is your feature request related to a problem? Please describe.
I'm always frustrated when the compiler lies to me and instead of the number literal I see stores a different number to the memory/register and first then starts the actual computation.

Describe the solution you'd like
Either error out, that the given float literal can't be converted to a binary float due to loss of precision. Or add support for (arbitrary precision like mpdecimal?) decimal floats.

Describe alternatives you've considered
Leave it as it is - which is very painful and significantly contributes to the oddity of floats in general.

Additional context
N/A

Feature request.

Hi Francesco,

Would like to request to add xor-, or- and and-operator overloads for mppp:integer<>.

This library looks awesome, thanks for it!

degski

[BUG] Literal `_rq` performs conversion of string literal in runtime instead of compile time

I expect the performance of the quad prec literal NUM_rq to have the same performance of doing real128(NUM.q), however it is much slower. Running perf on some sample code shows that the conversion from string to __float128 is not happening at compile time as seems to be the case with .q, but occurs at runtime:
strtoflt128

When I use real128(NUM.q), there is no function call to strtofloat:
nostringconv

Changing from _rq to .q made my code about 1.5 times faster.

How to use uint256_t?

I want to use a uint256_t variable ,just like this:
const uint256_t a("0xF4DF741DE58BCB2F37F18372026EF9CBCFC456CB80AF54D53BDEED78410065DE");
const uint256_t b("1233423452345242346523426534652345235233245");

const uint256_t c = (a * b);
const uint256_t d = (a + b);
const uint256_t e =a++;
const uint256_t f = a__;
cout<<a.str();

Can you help me?thanks.

benchmarks for > 2 limbs + question on licensing

as mentioned in nim-lang/Nim#14696 (comment), fort the benchmarks in https://bluescarni.github.io/mppp/integer_benchmarks.html:

those benchmarks are a bit cherry-picking; as it only shows 1 and 2-limb sizes.

are there benchmarks for > 2 limbs?
Until then, what kind of performance to expect compared to gmp for > 2 limbs?

Unrelated question: the readme says:

Built on top of the GNU multiprecision stack (GMP, MPFR, MPC), mp++ was initially conceived as a GMP wrapper

Given this fact, can you please clarify whether using mpp is subject to the licensing terms of gmp?

Since version 6, GMP is distributed under the dual licenses, GNU LGPL v3 and GNU GPL v2. These licenses make the library free to use, share, and improve, and allow you to pass on the result. The GNU licenses give freedoms, but also set firm restrictions on the use with non-free programs.

No powm or invert?

I just stumbled across this project and was interested to test it out and compare performance with GMP. I am writing software to factor Mersenne numbers, and my use case deals mostly with 1 to 2 limb(64bit) values, so mppp being optimized for small values sounded ideal. But I make heavy use of modular exponentiation (mpz_powm), plus a few calls to mpz_invert.

Searching through the documentation I didn't immediately see any reference to either. Are these planned to be added eventually?

Binary exporting and importing values

Hi!

I want to store/restore integers and rationals to/from a buffer. For now I use mpz_export() and mpz_import(), but this is not the most efficient way for small values as it constructs temporary objects. Using the string representation is also not very efficient. So what way do you recommend for storing/restoring the numbers?

Did I miss something? Or is it just a feature request :-)

In general I have to say this is the just the best C++ library for large integers and rationals...

Thanks for it,
sattel

The test real_bessel fails on FreeBSD 12.2

Starting program: /usr/ports/math/mppp/work/.build/test/real_bessel 

Program received signal SIGBUS, Bus error.
0x0000000800b3cea5 in arb_gamma_small_frac () from /usr/local/lib/libarb.so.2
(gdb) bt
#0  0x0000000800b3cea5 in arb_gamma_small_frac () from /usr/local/lib/libarb.so.2
#1  0x0000000800b3d1ae in arb_gamma_fmpq_outward () from /usr/local/lib/libarb.so.2
#2  0x0000000800b3da59 in ?? () from /usr/local/lib/libarb.so.2
#3  0x0000000800a43920 in acb_rgamma () from /usr/local/lib/libarb.so.2
#4  0x0000000800aa8be1 in acb_hypgeom_bessel_j_0f1 () from /usr/local/lib/libarb.so.2
#5  0x0000000800aa8e8f in acb_hypgeom_bessel_j () from /usr/local/lib/libarb.so.2
#6  0x0000000800b74765 in arb_hypgeom_bessel_j () from /usr/local/lib/libarb.so.2
#7  0x00000008003057db in mppp::detail::arb_hypgeom_bessel_j(__mpfr_struct*, __mpfr_struct const*, __mpfr_struct const*) () from /usr/ports/math/mppp/work/.build/libmp++.so.8
#8  0x0000000000232f58 in ____C_A_T_C_H____T_E_S_T____12() ()
#9  0x00000000002592ef in Catch::RunContext::invokeActiveTestCase() ()
#10 0x0000000000257557 in Catch::RunContext::runCurrentTest(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&, std::__1::basic_string<char, std::__1::cha
r_traits<char>, std::__1::allocator<char> >&) ()
#11 0x0000000000256ba1 in Catch::RunContext::runTest(Catch::TestCase const&) ()
#12 0x000000000025c7ba in Catch::Session::runInternal() ()
#13 0x000000000025bb29 in Catch::Session::run() ()
#14 0x0000000000270a8c in main ()
(gdb) 

Version 0.22
clang 10

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.