`min` does not return the minimum with respect to `isless` when values tie
I maintainer di solito rispondono entro 1 giorno
Valutazione
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Idoneità per principianti
- 55/100
Direzione di ricerca
Start by reading the min implementation and its tests, then compare its tie handling with isless as changed in #695. Reproduce the reported min(x, 48.0) and min(48.0, x) results with ForwardDiff.Dual; done means tied values are selected consistently with isless, independent of argument order, and the regression is covered by a test.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
min is documented to "return the minimum of the arguments, with respect to isless", but for a Dual that ties in value it returns whichever argument comes first:
julia> using ForwardDiff
julia> x = ForwardDiff.Dual(48.0, 1.0);
julia> isless(48.0, x)
true
julia> min(x, 48.0)
Dual{Nothing}(48.0,1.0)
julia> min(48.0, x)
Dual{Nothing}(48.0,0.0)
Since #695, isless breaks a value tie on the partials, so 48.0 is the smaller argument here, but min(x, 48.0) returns x. min picks its argument by value only, so on a tie the result depends on argument order rather than on isless.
I ran into this through differentiating Interpolations.jl, whose linear extrapolation clamps with min and then bounds-checks the result with <=, so it throws a BoundsError under --check-bounds=yes when differentiating exactly at the last knot.
ForwardDiff 1.4.6, Julia 1.12.7.
- Lingua principale
- Julia
- Stelle
- 1k
- Fork
- 165
- Merge medio
- 6h 34m
- PR unite (30g)
- 1
Preparare l'ambiente
Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di JuliaDiff/ForwardDiff.jl
-
missing floatmin, floatmax, and issubnormal for DualForse già presa @devmotion l’ha presa 30 giorni fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
JuliaDiff/ForwardDiff.jl#852 · 6 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
Third-order derivatives of `x / y` are `Inf` or `NaN` for small `y`, e.g. in gradients of Laplace approximationsForse già presa @devmotion l’ha presa 4 giorni fa. Aperta
Difficoltà 3/5 1-2 giorni Idoneità per principianti 65/100
JuliaDiff/ForwardDiff.jl#866 ·
I maintainer di solito rispondono entro 1 giorno
-
`fma` and `muladd` ignore NaN-safe modeForse già presa @devmotion l’ha presa 15 giorni fa. Aperta
Difficoltà 3/5 1-2 giorni Idoneità per principianti 55/100
JuliaDiff/ForwardDiff.jl#860 ·
I maintainer di solito rispondono entro 1 giorno
-
Enable NaN-safe mode by defaultForse già presa @devmotion l’ha presa 17 giorni fa. Aperta
Difficoltà 5/5 Più di una settimana Idoneità per principianti 25/100
JuliaDiff/ForwardDiff.jl#857 · 1 reazione ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 52/100
JuliaDiff/ForwardDiff.jl#854 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di JuliaDiff/ForwardDiff.jl
Issue simili
-
documentation invalid
Difficoltà 1/5 1-3 ore Idoneità per principianti 88/100
JuliaPhysics/BeamletOptics.jl#190 ·
I maintainer di solito rispondono entro 2 giorni
-
mul! with a Symmetric or Hermitian factor throws for a matrix view whose columns are not contiguousAperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
JuliaLang/LinearAlgebra.jl#1829 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
MagneticResonanceImaging/MRIReco.jl#320 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
rfordatascience/tidytuesday#1098 ·
-
documentation
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
trixi-framework/TrixiParticles.jl#1364 ·
I maintainer di solito rispondono entro 2 giorni