boostorg / boostorg/math

arm64_v8a: ibeta_inv exceeds 200 iterations for some arguments

Offen
#442 8 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
Vorherrschende Sprache
C++
Sterne
374
Forks
264
Ø Merge
1 T. 23 Std.
Gemergte PRs (30 T.)
17

Beschreibung

Hi, when compiling for 64-bit ARM (arm64_v8a), ibeta_inv(alpha, beta, x) produces

boost::exception_detail::clone_impl >: Error in function boost::math::ibeta(long double, long double, long double): Root finding evaluation exceeded 200 iterations, giving up now.

when either alpha or beta are smaller than about 3e-3. For other target processors I've tried (arm_v7a, x86, x86_64) this works fine.

I've now hacked up my own custom root finder for these cases which converges in just a few iterations. My code's certainly not up to boost standards, but I'm happy to share it as a starting point if someone wants to use it to improve the ibeta_inv root finder in this regard.

Though I suspect that something else is going on here - the bug may be indicative of some deeper numerical issues on arm64_v8a?

Beitragsleitfaden

Für dieses Repository ist kein Beitragsleitfaden indexiert

Bewertung

Dieses Issue wurde noch nicht bewertet.

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.