From 96d0e61e614c8224f60f14715af765d919a0ee48 Mon Sep 17 00:00:00 2001 From: Sheehan Olver Date: Fri, 19 Feb 2021 10:54:25 +0000 Subject: [PATCH 1/2] =?UTF-8?q?Lazy=20broadcasting=20for=20=E2=88=9E=20vie?= =?UTF-8?q?ws=20whose=20indices=20are=20=E2=88=9E=20views?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/infrange.jl | 4 +++- test/runtests.jl | 11 +++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/src/infrange.jl b/src/infrange.jl index 02c6d70..125ebe7 100644 --- a/src/infrange.jl +++ b/src/infrange.jl @@ -428,7 +428,9 @@ end BroadcastStyle(::Type{<:InfRanges}) = LazyArrayStyle{1}() BroadcastStyle(::Type{<:Adjoint{<:Any,<:InfRanges}}) = LazyArrayStyle{2}() BroadcastStyle(::Type{<:Transpose{<:Any,<:InfRanges}}) = LazyArrayStyle{2}() -BroadcastStyle(::Type{<:SubArray{<:Any,1,<:Any,<:Tuple{InfRanges}}}) = LazyArrayStyle{1}() +const InfSubVector = SubArray{<:Any,1,<:Any,<:Tuple{InfRanges}} +BroadcastStyle(::Type{<:InfSubVector}) = LazyArrayStyle{1}() +BroadcastStyle(::Type{<:SubArray{<:Any,1,<:Any,<:Tuple{InfSubVector}}}) = LazyArrayStyle{1}() BroadcastStyle(::Type{<:Base.Slice{<:InfRanges}}) = LazyArrayStyle{1}() diff --git a/test/runtests.jl b/test/runtests.jl index acf97be..59cc82d 100644 --- a/test/runtests.jl +++ b/test/runtests.jl @@ -691,6 +691,17 @@ end @test view(V,2:∞,[1,2,3]) .+ 1 isa BroadcastMatrix @test view(V,[1,2,3],2:∞) .+ 1 isa BroadcastMatrix end + + @testset "inf broadcast views" begin + a = BroadcastArray(cos, 1:∞) + r = div.(1:∞, 2) .+ 1 + b = SubArray(a, (r,)) + @test b[1:6] == a[r[1:6]] + @test_broken Base.BroadcastStyle(typeof(b)) isa LazyArrayStyle + c = SubArray(a, (view(r,2:∞),)) + @test c[1:6] == a[r[2:7]] + @test Base.BroadcastStyle(typeof(c)) isa LazyArrayStyle + end end @testset "Cumsum and diff" begin From 28cf6c3c6af662c7d3ec6decd43adbb8b5c1ffbb Mon Sep 17 00:00:00 2001 From: Sheehan Olver Date: Fri, 19 Feb 2021 10:54:44 +0000 Subject: [PATCH 2/2] v0.10.1 --- Project.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Project.toml b/Project.toml index 8ad8bb7..fe12b90 100644 --- a/Project.toml +++ b/Project.toml @@ -1,6 +1,6 @@ name = "InfiniteArrays" uuid = "4858937d-0d70-526a-a4dd-2d5cb5dd786c" -version = "0.10.0" +version = "0.10.1" [deps] ArrayLayouts = "4c555306-a7a7-4459-81d9-ec55ddd5c99a"