Mercurial > repos > public > sbplib_julia
comparison src/Grids/equidistant_grid.jl @ 1146:31041ef8092a refactor/grids
Specialize evalOn for EquidistantGrid to return a LazyArray
author | Jonatan Werpers <jonatan@werpers.com> |
---|---|
date | Wed, 19 Oct 2022 23:23:36 +0200 |
parents | 9275d95e2d90 |
children | bda0afcf8e52 |
comparison
equal
deleted
inserted
replaced
1145:4da66d6d7bed | 1146:31041ef8092a |
---|---|
1 | |
2 """ | 1 """ |
3 EquidistantGrid{Dim,T<:Real} <: Grid | 2 EquidistantGrid{Dim,T<:Real} <: Grid |
4 | 3 |
5 `Dim`-dimensional equidistant grid with coordinates of type `T`. | 4 `Dim`-dimensional equidistant grid with coordinates of type `T`. |
6 """ | 5 """ |
70 | 69 |
71 Base.getindex(g::EquidistantGrid, I::CartesianIndex) = g[Tuple(I)...] | 70 Base.getindex(g::EquidistantGrid, I::CartesianIndex) = g[Tuple(I)...] |
72 # TBD: Can this method be removed if `EquidistantGrid` is an AbstractArray? | 71 # TBD: Can this method be removed if `EquidistantGrid` is an AbstractArray? |
73 | 72 |
74 | 73 |
74 function evalOn(grid::EquidistantGrid, f::Function) | |
75 F(I...) = f(grid[I...]...) | |
75 | 76 |
77 return LazyFunctionArray(F, size(grid)) | |
78 end | |
76 | 79 |
77 """ | 80 """ |
78 spacing(grid::EquidistantGrid) | 81 spacing(grid::EquidistantGrid) |
79 | 82 |
80 The spacing between grid points. | 83 The spacing between grid points. |