Skip to content

Commit

Permalink
Fix Julia 1.11
Browse files Browse the repository at this point in the history
  • Loading branch information
charleskawczynski committed Oct 1, 2024
1 parent c6bfad8 commit 9795581
Showing 1 changed file with 34 additions and 0 deletions.
34 changes: 34 additions & 0 deletions src/DataLayouts/DataLayouts.jl
Original file line number Diff line number Diff line change
Expand Up @@ -1181,6 +1181,40 @@ end
)
end

### --------------- Support for multi-dimensional indexing
# TODO: can we remove this? It's not needed for Julia 1.10,
# but seems needed in Julia 1.11.
@inline Base.getindex(
data::Union{IJF, IJFH, IFH, VIJFH, VIFH, VF, IF},
I::Vararg{Int, N},
) where {N} = Base.getindex(data, to_universal_index(data, I))

@inline Base.setindex!(
data::Union{IJF, IJFH, IFH, VIJFH, VIFH, VF, IF},
val,
I::Vararg{Int, N},
) where {N} = Base.setindex!(data, val, to_universal_index(data, I))

@inline to_universal_index(data::AbstractData, I::Tuple) =
CartesianIndex(_to_universal_index(data, I))

# Certain datalayouts support special indexing.
# Like VF datalayouts with `getindex(::VF, v::Integer)`
#! format: off
@inline _to_universal_index(::VF, I::NTuple{1, T}) where {T} = (T(1), T(1), T(1), I[1], T(1))
@inline _to_universal_index(::IF, I::NTuple{1, T}) where {T} = (I[1], T(1), T(1), T(1), T(1))
@inline _to_universal_index(::IF, I::NTuple{2, T}) where {T} = (I[1], T(1), T(1), T(1), T(1))
@inline _to_universal_index(::IF, I::NTuple{3, T}) where {T} = (I[1], T(1), T(1), T(1), T(1))
@inline _to_universal_index(::IF, I::NTuple{4, T}) where {T} = (I[1], T(1), T(1), T(1), T(1))
@inline _to_universal_index(::IF, I::NTuple{5, T}) where {T} = (I[1], T(1), T(1), T(1), T(1))
@inline _to_universal_index(::IJF, I::NTuple{2, T}) where {T} = (I[1], I[2], T(1), T(1), T(1))
@inline _to_universal_index(::IJF, I::NTuple{3, T}) where {T} = (I[1], I[2], T(1), T(1), T(1))
@inline _to_universal_index(::IJF, I::NTuple{4, T}) where {T} = (I[1], I[2], T(1), T(1), T(1))
@inline _to_universal_index(::IJF, I::NTuple{5, T}) where {T} = (I[1], I[2], T(1), T(1), T(1))
@inline _to_universal_index(::AbstractData, I::NTuple{5}) = I
#! format: on
### ---------------

"""
data2array(::AbstractData)
Expand Down

0 comments on commit 9795581

Please sign in to comment.