Hacktoberfest 2026: die Issues, die Maintainer für den Oktober markiert haben – offen und einsteigerfreundlich. Hacktoberfest-Issues durchsuchen

The derivative of an answer at a large hyperbolic argument evaluates to NaN or loses its imaginary part

Geschlossen
#1,944 1 Kommentar 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Maintainer antworten meist innerhalb von 1 Tag

Dieses Issue hat noch niemand übernommen.

Bewertung

Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Anfängerfreundlichkeit
43/100
Issue-Typ
Bug
Klarheit
Größtenteils klar
Aktivitätsstatus
Aktiv
Tech-Stack
csharp
Bereich
backend

Rechercherichtung

Start by reproducing the derivative evaluation with the exact parameters and x from the issue, comparing it with the integrand at 50, 300, and 2000 digits. Trace the derivative evaluation path and identify which subexpression causes NaN or loses the imaginary component; the issue does not name a file or test. Done means the derivative agrees with the integrand at the reported large argument and at x = 2 across those precisions.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

Found while checking Rubi 6.1.5, row 94 (1/sqrt(a + i a sinh(c + d x))) for 2.6.0. The answer is right. The library's own numerical evaluation of its derivative is not, at large arguments.

With a, c, d = 21/10, 19/10, 17/10 and x = 227283/1250 (so t = c + d x ≈ 311), the true value of the derivative is r(1 − i) with r ≈ 2.0185e-68. That is what mpmath gives at dps 400, and what the library gives when it evaluates the integrand itself.

The derivative of the answer, Differentiate(x) then substituted with exact rationals and evaluated, gives:

digits value
50 NaN
300 1.5329…, which is wrong in magnitude too
2000 2.0185…e-68: the real part is right and the imaginary part −2.0185…e-68 i is missing

The relative difference at 2000 digits is exactly −1/2 + i/2. At x = 2 all three precisions agree with the integrand to the last digit.

The derivative holds e^(±t/2) and e^(±t) beside a + i a sinh(t), so large cancellations are expected. Losing a whole component at 2000 digits is not explained by that, though, and NaN at 50 digits should have been "could not evaluate". I have not narrowed it to a single subexpression.

Because of this, the Rubi harness reports this row as wrong, and anything that checks an answer by evaluating would do the same.

🤖 Generated with Claude Code

https://claude.ai/code/session_012sonx8iAspMiwRwokT1Ura

Vorherrschende Sprache
C#
Sterne
831
Forks
79
Ø Merge
1 Std. 25 Min.
Gemergte PRs (30 T.)
533

Entwicklungsumgebung

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus ASC-Community/AngouriMath

Alle Issues in ASC-Community/AngouriMath

Ähnliche Issues

Weitere Issues zu C#

Neue Issues direkt in Ihr Postfach

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