norm() on a zero vector with non-zero partials gives nan value for v1.3.1+
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 3/5
- Geschätzter Aufwand
- 1-2 Tage
- Anfängerfreundlichkeit
- 52/100
Rechercherichtung
Führen Sie den bereitgestellten Julia-Reproduzierer mit ForwardDiff, StaticArrays und LinearAlgebra unter v1.3.0 und v1.3.1+ aus. Verfolgen Sie den LinearAlgebra-Normpfad für ForwardDiff.Dual und vergleichen Sie ihn mit dem manuellen sqrt-Ausdruck; abgeschlossen ist die Aufgabe, wenn die Abweichung erklärt und identifiziert wurde, welches Ergebnis für den Nullvektor beabsichtigt ist.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
I noticed a change in behavior when upgrading from v1.3.0 to v1.3.1+. It seems that when taking the norm of a zero vector of duals, sometimes a NaN value for the norm gets produced. Interestingly, using LinearAlgebra does this but taking the norm manually bypasses the issue.
using ForwardDiff
using StaticArrays
using LinearAlgebra
v = SA[ForwardDiff.Dual(0.0, 1.0), ForwardDiff.Dual(0.0, 1.0), ForwardDiff.Dual(0.0, 1.0)]
norm_v = norm(v)
norm_v_manual = sqrt(v[1]^2 + v[2]^2 + v[3]^2)
println(norm_v)
println(norm_v_manual)
In v1.3.0, norm_v and norm_v_manual are the same, but in v1.3.1+, norm_v becomes Dual(NaN,NaN)
What's the reason for this inconsistency? And which result is intended to be correct?
Happy to do more testing!
- Vorherrschende Sprache
- Julia
- Sterne
- 1k
- Forks
- 162
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Entwicklungsumgebung
Dieses Projekt bietet weder Dev-Container noch Dockerfile noch Beitragsleitfaden – die Einrichtung liegt bei Ihnen. Beginnen Sie mit der README; die allgemeinen Schritte stehen in unserem Leitfaden für den ersten Beitrag.
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus JuliaDiff/ForwardDiff.jl
-
missing floatmin, floatmax, and issubnormal for DualEvtl. vergeben @devmotion hat das vor 14 Tagen übernommen. Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 68/100
JuliaDiff/ForwardDiff.jl#852 · 6 Kommentare ·
-
`fma` and `muladd` ignore NaN-safe modeEvtl. vergeben @devmotion hat das heute übernommen. Offen
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 55/100
JuliaDiff/ForwardDiff.jl#860 ·
-
Enable NaN-safe mode by defaultEvtl. vergeben @devmotion hat das vor 2 Tagen übernommen. Offen
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 25/100
JuliaDiff/ForwardDiff.jl#857 · 1 Reaktion ·
-
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 52/100
JuliaDiff/ForwardDiff.jl#854 · 1 Kommentar ·
-
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 75/100
JuliaDiff/ForwardDiff.jl#849 ·
Alle Issues in JuliaDiff/ForwardDiff.jl
Ähnliche Issues
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 70/100
SciML/OrdinaryDiffEq.jl#4875 ·
Maintainer antworten meist innerhalb von 3 Tagen
-
documentation
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 62/100
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 66/100
SciML/NonlinearSolve.jl#1372 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Truncated discrete ccdf and logccdf return incorrect values at the lower atomEvtl. vergeben Ein verknüpfter Pull Request ist offen oder bereits gemergt. Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 82/100
JuliaStats/Distributions.jl#2095 ·
-
documentation 📜 microphysics💧 ❄️
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 63/100
NumericalEarth/Breeze.jl#1073 ·
Maintainer antworten meist innerhalb von 1 Tag