Even very basic broadcasting breaks inferability
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Aptitud para principiantes
- 35/100
Línea de trabajo
Reproduce el ejemplo con el @code_warntype de Julia y empieza en stage1/forward.jl:148, donde el método mostrado hace dispatch a través de ∂☆internal. Traza la llamada para los ZeroBundle, CompositeBundle y la función de broadcasting proporcionados; se considera terminado cuando el ejemplo ya no informa Body::Any y sigue siendo inferible.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Even very simple broadcasting can't infer in Diffractor forward mode
Consider:
using Diffractor
using Diffractor: TaylorBundle, ZeroBundle, CompositeBundle
forward = Diffractor.∂☆{1}()
f(x) = 2 .* x
cb = CompositeBundle{1, Tuple{Float64, Float64}}((TaylorBundle{1}(1.0, (1.0,)), TaylorBundle{1}(1.0, (2.0,))))
@code_warntype forward(ZeroBundle{1}(f), cb)
The output is
julia> @code_warntype forward(ZeroBundle{1}(f), cb)
MethodInstance for (::Diffractor.∂☆{1})(::ZeroBundle{1, typeof(f)}, ::CompositeBundle{1, Tuple{Float64, Float64}, Tuple{Diffractor.TangentBundle{1, Float64, Diffractor.TaylorTangent{Tuple{Float64}}}, Diffractor.TangentBundle{1, Float64, Diffractor.TaylorTangent{Tuple{Float64}}}}})
from (::Diffractor.∂☆{N})(args::Diffractor.AbstractTangentBundle{N}...) where N @ Diffractor ~/.julia/packages/Diffractor/a9mlv/src/stage1/forward.jl:148
Static Parameters
N = 1
Arguments
#self#::Core.Const(Diffractor.∂☆{1}())
args::Tuple{ZeroBundle{1, typeof(f)}, CompositeBundle{1, Tuple{Float64, Float64}, Tuple{Diffractor.TangentBundle{1, Float64, Diffractor.TaylorTangent{Tuple{Float64}}}, Diffractor.TangentBundle{1, Float64, Diffractor.TaylorTangent{Tuple{Float64}}}}}}
Body::Any
1 ─ %1 = Core.apply_type(Diffractor.∂☆internal, $(Expr(:static_parameter, 1)))::Core.Const(Diffractor.∂☆internal{1})
│ %2 = (%1)()::Core.Const(Diffractor.∂☆internal{1}())
│ %3 = Core._apply_iterate(Base.iterate, %2, args)::Any
└── return %3
- Lenguaje dominante
- Julia
- Estrellas
- 453
- Forks
- 33
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Preparar el entorno
Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de JuliaDiff/Diffractor.jl
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 25/100
JuliaDiff/Diffractor.jl#302 · 2 comentarios ·
-
Wrong derivative of exp(cos(x))Abierto
Dificultad 3/5 1-2 días Aptitud para principiantes 52/100
JuliaDiff/Diffractor.jl#294 ·
-
Incorrect Jacobian calculationAbiertobug
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
JuliaDiff/Diffractor.jl#293 ·
-
bug
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
JuliaDiff/Diffractor.jl#290 · 8 comentarios ·
-
Dificultad 3/5 1-2 días Aptitud para principiantes 35/100
JuliaDiff/Diffractor.jl#280 · 1 comentario ·
Todos los issues de JuliaDiff/Diffractor.jl
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
CliMA/ClimaAtmos.jl#4891 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
tagbot-manual
Dificultad 1/5 Menos de una hora Aptitud para principiantes 75/100
tshort/StaticCompiler.jl#191 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
SciML/SciMLSensitivity.jl#1703 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
JuliaGPU/GPUCompiler.jl#1008 ·
Los mantenedores suelen responder en 1 día
-
`biggs6` disagrees with CUTEst and is unbounded belowPosiblemente ocupada @timholy la tomó hace 1 día. Abiertobug
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100