Symbolics.jl compatibility
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 35/100
Direzione di ricerca
Riproduci l’esempio usando ForwardDiff.derivative, Symbolics.jl, Num e ForwardDiff.Dual, quindi esamina i metodi aritmetici in conflitto mostrati nell’errore di ForwardDiff e SymbolicUtils. Determina se la modifica di compatibilità debba essere apportata in ForwardDiff.jl o in Symbolics.jl e verifica che le operazioni aritmetiche di base non producano più un errore di metodo ambiguo.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Arithmetic operations between Num and Dual based on Num is not clearly defined. The basic usecase is this:
using ForwardDiff, Symbolics.jl
@variables a, x
f = x -> a*x
Differential(x)(f(x)) |> expand_derivatives # This works, and gives what I would expect from ForwardDiff.derivative
ForwardDiff.derivative(f, x) # This returns an error
The error given by the last line is this
ERROR: MethodError: *(::Num, ::ForwardDiff.Dual{ForwardDiff.Tag{var"#5#6", Num}, Num, 1}) is ambiguous.
Candidates:
*(x::Real, y::ForwardDiff.Dual{Ty}) where Ty
@ ForwardDiff ~/.julia/packages/ForwardDiff/PcZ48/src/dual.jl:145
*(a::Num, b::Real)
@ Symbolics ~/.julia/packages/SymbolicUtils/ssQsQ/src/methods.jl:73
*(a::Num, b::Number)
@ Symbolics ~/.julia/packages/SymbolicUtils/ssQsQ/src/methods.jl:75
Possible fix, define
*(::Num, ::ForwardDiff.Dual{Ty}) where Ty
Stacktrace:
[1] (::var"#5#6")(x::ForwardDiff.Dual{ForwardDiff.Tag{var"#5#6", Num}, Num, 1})
@ Main ./REPL[21]:1
[2] derivative(f::var"#5#6", x::Num)
@ ForwardDiff ~/.julia/packages/ForwardDiff/PcZ48/src/derivative.jl:14
[3] top-level scope
@ REPL[22]:1
This seems to be the case for (at least) all basic arithmetic operations. Not sure if this should be fixed here or in Symbolics.jl.
- Lingua principale
- Julia
- Stelle
- 1k
- Fork
- 162
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
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 16 giorni fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
JuliaDiff/ForwardDiff.jl#852 · 6 commenti ·
-
`fma` and `muladd` ignore NaN-safe modeForse già presa @devmotion l’ha presa 2 giorni fa. Aperta
Difficoltà 3/5 1-2 giorni Idoneità per principianti 55/100
JuliaDiff/ForwardDiff.jl#860 ·
-
Enable NaN-safe mode by defaultForse già presa @devmotion l’ha presa 4 giorni fa. Aperta
Difficoltà 5/5 Più di una settimana Idoneità per principianti 25/100
JuliaDiff/ForwardDiff.jl#857 · 1 reazione ·
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 52/100
JuliaDiff/ForwardDiff.jl#854 · 1 commento ·
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 75/100
JuliaDiff/ForwardDiff.jl#849 ·
Tutte le issue di JuliaDiff/ForwardDiff.jl
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
JuliaGPU/KernelAbstractions.jl#897 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
oscar-system/GAP.jl#1455 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
JuliaAI/MLJTransforms.jl#85 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
SciML/OrdinaryDiffEq.jl#4875 ·
I maintainer di solito rispondono entro 4 giorni