Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Reductions do not work anymore #66

Closed
tknopp opened this issue Mar 10, 2017 · 5 comments
Closed

Reductions do not work anymore #66

tknopp opened this issue Mar 10, 2017 · 5 comments

Comments

@tknopp
Copy link

tknopp commented Mar 10, 2017

Not sure what happened after #55 but reductions now do not work anymore.
Two examples

julia> Y = AxisArray(randn(4,4,4,4),:x,:y,:z,:time)
julia> maximum(parent(Y),2)
ERROR: BoundsError: attempt to access (:x,:y,:z,:time)
  at index [5]
 in getindex(::Tuple{Symbol,Symbol,Symbol,Symbol}, ::Int64) at ./tuple.jl:8
 in reaxis(...) at /home/knopp/.julia/v0.5/AxisArrays/src/indexing.jl:42
 in macro expansion at ./reducedim.jl:230 [inlined]
 in macro expansion at ./simdloop.jl:73 [inlined]
 in _mapreducedim!(::Base.#identity, ::Base.#scalarmax, ::Array{Float64,4}, ::AxisArrays.AxisArray{Float64,4,Array{Float64,4},Tuple{AxisArrays.Axis{:x,Base.OneTo{Int64}},AxisArrays.Axis{:y,Base.OneTo{Int64}},AxisArrays.Axis{:z,Base.OneTo{Int64}},AxisArrays.Axis{:time,Base.OneTo{Int64}}}}) at ./reducedim.jl:229
 in mapreducedim!(::Function, ::Function, ::Array{Float64,4}, ::AxisArrays.AxisArray{Float64,4,Array{Float64,4},Tuple{AxisArrays.Axis{:x,Base.OneTo{Int64}},AxisArrays.Axis{:y,Base.OneTo{Int64}},AxisArrays.Axis{:z,Base.OneTo{Int64}},AxisArrays.Axis{:time,Base.OneTo{Int64}}}}) at ./reducedim.jl:237
 in mapreducedim(::Function, ::Function, ::AxisArrays.AxisArray{Float64,4,Array{Float64,4},Tuple{AxisArrays.Axis{:x,Base.OneTo{Int64}},AxisArrays.Axis{:y,Base.OneTo{Int64}},AxisArrays.Axis{:z,Base.OneTo{Int64}},AxisArrays.Axis{:time,Base.OneTo{Int64}}}}, ::Int64) at ./reducedim.jl:268
 in maximum(::AxisArrays.AxisArray{Float64,4,Array{Float64,4},Tuple{AxisArrays.Axis{:x,Base.OneTo{Int64}},AxisArrays.Axis{:y,Base.OneTo{Int64}},AxisArrays.Axis{:z,Base.OneTo{Int64}},AxisArrays.Axis{:time,Base.OneTo{Int64}}}}, ::Int64) at ./reducedim.jl:320

and

julia> Y = AxisArray(randn(4,4,4),:x,:y,:z)
julia> maximum(parent(Y),2)
ERROR: ArgumentError: ordering is not well-defined for arrays
 in macro expansion at ./reducedim.jl:230 [inlined]
 in macro expansion at ./simdloop.jl:73 [inlined]
 in _mapreducedim!(::Base.#identity, ::Base.#scalarmax, ::Array{Float64,3}, ::AxisArrays.AxisArray{Float64,3,Array{Float64,3},Tuple{AxisArrays.Axis{:x,Base.OneTo{Int64}},AxisArrays.Axis{:y,Base.OneTo{Int64}},AxisArrays.Axis{:z,Base.OneTo{Int64}}}}) at ./reducedim.jl:229
 in mapreducedim! at ./reducedim.jl:237 [inlined]
 in mapreducedim at ./reducedim.jl:268 [inlined]
 in maximum at ./reducedim.jl:318 [inlined]
 in maximum(::AxisArrays.AxisArray{Float64,3,Array{Float64,3},Tuple{AxisArrays.Axis{:x,Base.OneTo{Int64}},AxisArrays.Axis{:y,Base.OneTo{Int64}},AxisArrays.Axis{:z,Base.OneTo{Int64}}}}, ::Int64) at ./reducedim.jl:320

Interestingly its two different errors. I don't know what the parent is supposed to do but it was proposed in #56 by @timholy. It seems that parent is the identity for AxisArrays

@tknopp
Copy link
Author

tknopp commented Mar 10, 2017

(using Y.data of course still works. Maybe we should have parent(a::AxisArray) = a.data?)

@timholy
Copy link
Member

timholy commented Mar 10, 2017

That was my intention. I wonder if I had defined it that way in that session already? It worked for me.

@tknopp
Copy link
Author

tknopp commented Mar 10, 2017

I am on AxisArrays 0.0.4

@tknopp
Copy link
Author

tknopp commented Mar 10, 2017

make an Pkg.update() now...

@tknopp
Copy link
Author

tknopp commented Mar 10, 2017

bug remains on 0.0.5

timholy added a commit that referenced this issue Mar 10, 2017
mbauman added a commit that referenced this issue Mar 10, 2017
Fix CartesianIndex indexing (fix #62 #66)
@timholy timholy closed this as completed Mar 10, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants