forward_diff_no_inf can't handle throw_undef_if_not
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 3/5
- Temps estimé
- 1-2 jours
- Accessibilité débutants
- 45/100
Piste de recherche
Commencez dans l’implémentation de forward_diff_no_inf! et examinez dans forward_visit le nœud IR produit par throw_undef_if_not. Reproduisez l’exemple phi_run fourni avec le callback identity_transform! ; le travail est terminé lorsque l’appel s’achève sans l’erreur actuelle et que le nœud concerné est traité de manière cohérente.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
Ran into this while trying to reproduce another bug.
The following code errors:
using Diffractor
# this is needed as transform! is *always* called on Arguments regardless of what visit_custom says
identity_transform!(ir, ssa::Core.SSAValue, order) = ir[ssa]
function identity_transform!(ir, arg::Core.Argument, order)
return Core.Compiler.insert_node!(ir, Core.SSAValue(1), Core.Compiler.NewInstruction(Expr(:call, Diffractor.ZeroBundle{1}, arg), Any))
end
function phi_run(x::Float64, b1::Bool, b2::Bool)
if b1
a = 0.
elseif b2
a = z
end
return x - a
end
input_ir = first(only(Base.code_ircode(phi_run, Tuple{Float64, Bool, Bool})))
Diffractor.forward_diff_no_inf!(copy(input_ir), Core.SSAValue.(1:length(input_ir.stmts)) .=> 1; transform! = identity_transform!)
I think the fix is easy, add the case to forward_visit about what to do for this kind of node.
Which i think is return nothing
- Langage dominant
- Julia
- Étoiles
- 453
- Forks
- 33
- Métriques de merge des PR
- Aucune PR mergée en 30 j
Préparer son environnement
Ce projet ne fournit ni conteneur de développement, ni Dockerfile, ni guide de contribution : l'installation est à votre charge. Commencez par son README, et consultez notre guide de la première contribution pour les étapes générales.
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de JuliaDiff/Diffractor.jl
-
Difficulté 2/5 1-3 heures Accessibilité débutants 25/100
JuliaDiff/Diffractor.jl#302 · 2 commentaires ·
-
Wrong derivative of exp(cos(x))Ouverte
Difficulté 3/5 1-2 jours Accessibilité débutants 52/100
JuliaDiff/Diffractor.jl#294 ·
-
Incorrect Jacobian calculationOuvertebug
Difficulté 4/5 3-5 jours Accessibilité débutants 35/100
JuliaDiff/Diffractor.jl#293 ·
-
bug
Difficulté 4/5 3-5 jours Accessibilité débutants 35/100
JuliaDiff/Diffractor.jl#290 · 8 commentaires ·
-
Difficulté 3/5 1-2 jours Accessibilité débutants 35/100
JuliaDiff/Diffractor.jl#280 · 1 commentaire ·
Toutes les issues de JuliaDiff/Diffractor.jl
Issues similaires
-
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
JuliaGPU/KernelAbstractions.jl#897 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
oscar-system/GAP.jl#1455 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 65/100
JuliaAI/MLJTransforms.jl#85 ·
-
Difficulté 2/5 1-3 heures Accessibilité débutants 70/100
SciML/OrdinaryDiffEq.jl#4875 ·
Les mainteneurs répondent en général sous 4 jours