Evaluating at endpoints of open interval
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 25/100
Línea de trabajo
Reproduce el ejemplo de Julia con Fun sobre el intervalo abierto bidimensional y sigue los puntos de entrada de ApproxFunBase mostrados en el stack trace, especialmente default_Fun y constructors.jl. Determina si se están generando muestras de los extremos a pesar de los dominios abiertos; done debe demostrarse mediante el ejemplo, que ya no evalúa los valores de extremo no válidos sin romper la construcción válida de intervalos abiertos.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
The code seems to be creating errors by trying to evaluate at endpoints of an open interval, when the function might not exist at these endpoints:
julia> d
(0.0..3.0 (open)) × (0.0..10.0 (open))
julia> f = Fun((ξ, σ) -> log_posterior(data, ξ, σ), d)
ERROR: ArgumentError: GeneralizedPareto: the condition σ > zero(σ) is not satisfied.
Stacktrace:
[1] macro expansion
@ ~/.julia/packages/Distributions/vR2pk/src/utils.jl:6 [inlined]
[2] #GeneralizedPareto#147
@ ~/.julia/packages/Distributions/vR2pk/src/univariate/continuous/generalizedpareto.jl:41 [inlined]
[3] GeneralizedPareto
@ ~/.julia/packages/Distributions/vR2pk/src/univariate/continuous/generalizedpareto.jl:41 [inlined]
[4] GeneralizedPareto
@ ~/.julia/packages/Distributions/vR2pk/src/univariate/continuous/generalizedpareto.jl:50 [inlined]
[5] #9
@ ./REPL[21]:1 [inlined]
[6] mapreduce_impl(f::var"#9#10"{Float64, Float64}, op::typeof(Base.add_sum), A::Vector{Float64}, ifirst::Int64, ilast::Int64, blksize::Int64)
@ Base ./reduce.jl:244
[7] mapreduce_impl
@ ./reduce.jl:259 [inlined]
[8] _mapreduce(f::var"#9#10"{Float64, Float64}, op::typeof(Base.add_sum), #unused#::IndexLinear, A::Vector{Float64})
@ Base ./reduce.jl:417
[9] _mapreduce_dim
@ ./reducedim.jl:330 [inlined]
[10] #mapreduce#725
@ ./reducedim.jl:322 [inlined]
[11] mapreduce
@ ./reducedim.jl:322 [inlined]
[12] #_sum#735
@ ./reducedim.jl:894 [inlined]
[13] _sum
@ ./reducedim.jl:894 [inlined]
[14] #sum#733
@ ./reducedim.jl:890 [inlined]
[15] sum
@ ./reducedim.jl:890 [inlined]
[16] log_like
@ ./REPL[21]:1 [inlined]
[17] log_posterior(x::Vector{Float64}, ξ::Float64, σ::Float64)
@ Main ./REPL[23]:1
[18] (::var"#31#32")(ξ::Float64, σ::Float64)
@ Main ./REPL[63]:1
[19] (::ApproxFunBase.DFunction)(::Float64, ::Vararg{Float64})
@ ApproxFunBase ~/.julia/packages/ApproxFunBase/vVgJc/src/LinearAlgebra/helper.jl:647
[20] (::ApproxFunBase.var"#22#24"{ApproxFunBase.DFunction})(xy::StaticArrays.SVector{2, Float64})
@ ApproxFunBase ~/.julia/packages/ApproxFunBase/vVgJc/src/constructors.jl:100
[21] (::ApproxFunBase.DFunction)(args::StaticArrays.SVector{2, Float64})
@ ApproxFunBase ~/.julia/packages/ApproxFunBase/vVgJc/src/LinearAlgebra/helper.jl:647
[22] _broadcast_getindex_evalf
@ ./broadcast.jl:670 [inlined]
[23] _broadcast_getindex
@ ./broadcast.jl:643 [inlined]
[24] getindex
@ ./broadcast.jl:597 [inlined]
[25] macro expansion
@ ./broadcast.jl:961 [inlined]
[26] macro expansion
@ ./simdloop.jl:77 [inlined]
[27] copyto!
@ ./broadcast.jl:960 [inlined]
[28] copyto!
@ ./broadcast.jl:913 [inlined]
[29] materialize!
@ ./broadcast.jl:871 [inlined]
[30] materialize!
@ ./broadcast.jl:868 [inlined]
[31] broadcast!(f::ApproxFunBase.DFunction, dest::Vector{Float64}, As::Vector{StaticArrays.SVector{2, Float64}})
@ Base.Broadcast ./broadcast.jl:837
[32] default_Fun(#unused#::Type{Float64}, f::Function, d::TensorSpace{Tuple{Chebyshev{OpenInterval{Float64}, Float64}, Chebyshev{OpenInterval{Float64}, Float64}}, VcatDomain{2, Float64, (1, 1), Tuple{OpenInterval{Float64}, OpenInterval{Float64}}}, Float64}, pts::Vector{StaticArrays.SVector{2, Float64}}, #unused#::Type{Val{false}})
@ ApproxFunBase ~/.julia/packages/ApproxFunBase/vVgJc/src/constructors.jl:44
[33] default_Fun(f::ApproxFunBase.DFunction, d::TensorSpace{Tuple{Chebyshev{OpenInterval{Float64}, Float64}, Chebyshev{OpenInterval{Float64}, Float64}}, VcatDomain{2, Float64, (1, 1), Tuple{OpenInterval{Float64}, OpenInterval{Float64}}}, Float64}, n::Int64, #unused#::Type{Val{false}})
@ ApproxFunBase ~/.julia/packages/ApproxFunBase/vVgJc/src/constructors.jl:57
[34] default_Fun(f::Function, d::TensorSpace{Tuple{Chebyshev{OpenInterval{Float64}, Float64}, Chebyshev{OpenInterval{Float64}, Float64}}, VcatDomain{2, Float64, (1, 1), Tuple{OpenInterval{Float64}, OpenInterval{Float64}}}, Float64}, n::Int64)
@ ApproxFunBase ~/.julia/packages/ApproxFunBase/vVgJc/src/constructors.jl:72
[35] default_Fun(f::ApproxFunBase.DFunction, d::TensorSpace{Tuple{Chebyshev{OpenInterval{Float64}, Float64}, Chebyshev{OpenInterval{Float64}, Float64}}, VcatDomain{2, Float64, (1, 1), Tuple{OpenInterval{Float64}, OpenInterval{Float64}}}, Float64})
@ ApproxFunBase ~/.julia/packages/ApproxFunBase/vVgJc/src/constructors.jl:121
[36] Fun(f::Function, d::TensorSpace{Tuple{Chebyshev{OpenInterval{Float64}, Float64}, Chebyshev{OpenInterval{Float64}, Float64}}, VcatDomain{2, Float64, (1, 1), Tuple{OpenInterval{Float64}, OpenInterval{Float64}}}, Float64})
@ ApproxFunBase ~/.julia/packages/ApproxFunBase/vVgJc/src/constructors.jl:177
[37] default_Fun(f::ApproxFunBase.DFunction, d::TensorSpace{Tuple{Chebyshev{OpenInterval{Float64}, Float64}, Chebyshev{OpenInterval{Float64}, Float64}}, VcatDomain{2, Float64, (1, 1), Tuple{OpenInterval{Float64}, OpenInterval{Float64}}}, Float64})
@ ApproxFunBase ~/.julia/packages/ApproxFunBase/vVgJc/src/constructors.jl:100
[38] Fun(f::Function, d::TensorSpace{Tuple{Chebyshev{OpenInterval{Float64}, Float64}, Chebyshev{OpenInterval{Float64}, Float64}}, VcatDomain{2, Float64, (1, 1), Tuple{OpenInterval{Float64}, OpenInterval{Float64}}}, Float64})
@ ApproxFunBase ~/.julia/packages/ApproxFunBase/vVgJc/src/constructors.jl:177
[39] Fun(f::Function, d::VcatDomain{2, Float64, (1, 1), Tuple{OpenInterval{Float64}, OpenInterval{Float64}}})
@ ApproxFunBase ~/.julia/packages/ApproxFunBase/vVgJc/src/constructors.jl:173
[40] top-level scope
@ REPL[63]:1
- Lenguaje dominante
- Julia
- Estrellas
- 561
- Forks
- 71
- Merge medio
- 23 min
- PR fusionados (30 d)
- 1
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 JuliaApproximation/ApproxFun.jl
-
tagbot-manual
Dificultad 1/5 Menos de una hora Aptitud para principiantes 78/100
-
Dificultad 3/5 1-2 días Aptitud para principiantes 45/100
-
How to add Gauge/Tau MethodAbierto
Dificultad 5/5 Más de una semana Aptitud para principiantes 25/100
JuliaApproximation/ApproxFun.jl#970 · 3 comentarios ·
-
Dificultad 3/5 1-2 días Aptitud para principiantes 45/100
-
Plotting with MakieAbierto
Dificultad 4/5 3-5 días Aptitud para principiantes 42/100
Todos los issues de JuliaApproximation/ApproxFun.jl
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
-
documentation invalid
Dificultad 1/5 1-3 horas Aptitud para principiantes 88/100
JuliaPhysics/BeamletOptics.jl#190 ·
Los mantenedores suelen responder en 2 días
-
mul! with a Symmetric or Hermitian factor throws for a matrix view whose columns are not contiguousAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
JuliaLang/LinearAlgebra.jl#1829 ·
Los mantenedores suelen responder en 1 día
-
`EnsembleSummary` `ci_type = :SEM` ribbon is `sqrt(N)` too wide for scalar statesPosiblemente ocupada @isaacsas la tomó hace 1 día. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
SciML/SciMLBase.jl#1654 ·
Los mantenedores suelen responder en 3 días
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
MagneticResonanceImaging/MRIReco.jl#320 ·
Los mantenedores suelen responder en 1 día