Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

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

Chiusa
#1,944 1 commento 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
4/5
Tempo stimato
3-5 giorni
Idoneità per principianti
43/100
Tipo di issue
Bug
Chiarezza
Abbastanza chiara
Stato di attività
Attiva
Stack tecnologico
csharp
Ambito
backend

Direzione di ricerca

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.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

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

Lingua principale
C#
Stelle
831
Fork
79
Merge medio
1h 24m
PR unite (30g)
540

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di ASC-Community/AngouriMath

Tutte le issue di ASC-Community/AngouriMath

Issue simili

Altre issue su C#

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.