comparison src/Grids/tensor_grid.jl @ 1394:60857d8338cb bugfix/grids/complete_interface_impl

Merge default
author Jonatan Werpers <jonatan@werpers.com>
date Tue, 15 Aug 2023 22:45:58 +0200
parents 9da927271752 4d628c83987e
children adbdbf1c3480
comparison
equal deleted inserted replaced
1391:9da927271752 1394:60857d8338cb
15 return new{T,D,typeof(gs)}(gs) 15 return new{T,D,typeof(gs)}(gs)
16 end 16 end
17 end 17 end
18 18
19 # Indexing interface 19 # Indexing interface
20 function Base.getindex(g::TensorGrid, I...) 20 function Base.getindex(g::TensorGrid, I::Vararg{Int})
21 szs = ndims.(g.grids) 21 szs = ndims.(g.grids)
22 22
23 Is = LazyTensors.split_tuple(I, szs) 23 Is = LazyTensors.split_tuple(I, szs)
24 ps = map((g,I)->SVector(g[I...]), g.grids, Is) 24 ps = map((g,I)->SVector(g[I...]), g.grids, Is)
25 25
26 return vcat(ps...) 26 return vcat(ps...)
27 end 27 end
28
29 Base.getindex(g::TensorGrid, I::CartesianIndex) = g[Tuple(I)...]
30 28
31 function Base.eachindex(g::TensorGrid) 29 function Base.eachindex(g::TensorGrid)
32 szs = LazyTensors.concatenate_tuples(size.(g.grids)...) 30 szs = LazyTensors.concatenate_tuples(size.(g.grids)...)
33 return CartesianIndices(szs) 31 return CartesianIndices(szs)
34 end 32 end