Skip to content

Commit c0e5b84

Browse files
committed
deprecate flipdim to reverse with a dims keyword argument
1 parent e47ae98 commit c0e5b84

File tree

12 files changed

+39
-35
lines changed

12 files changed

+39
-35
lines changed

base/abstractarraymath.jl

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -126,9 +126,9 @@ julia> selectdim(A, 2, 3)
126126
end
127127

128128
"""
129-
flipdim(A, d::Integer)
129+
reverse(A; dims::Integer)
130130
131-
Reverse `A` in dimension `d`.
131+
Reverse `A` in dimension `dims`.
132132
133133
# Examples
134134
```jldoctest
@@ -137,14 +137,14 @@ julia> b = [1 2; 3 4]
137137
1 2
138138
3 4
139139
140-
julia> flipdim(b,2)
140+
julia> reverse(b, dims=2)
141141
2×2 Array{Int64,2}:
142142
2 1
143143
4 3
144144
```
145145
"""
146-
function flipdim(A::AbstractArray, d::Integer)
147-
nd = ndims(A)
146+
function reverse(A::AbstractArray; dims::Integer)
147+
nd = ndims(A); d = dims
148148
1 d nd || throw(ArgumentError("dimension $d is not 1 ≤ $d$nd"))
149149
if isempty(A)
150150
return copy(A)
@@ -160,7 +160,7 @@ function flipdim(A::AbstractArray, d::Integer)
160160
indsd = inds[d]
161161
sd = first(indsd)+last(indsd)
162162
if nnd==nd
163-
# flip along the only non-singleton dimension
163+
# reverse along the only non-singleton dimension
164164
for i in indsd
165165
B[i] = A[sd-i]
166166
end

base/array.jl

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1396,6 +1396,10 @@ function reverse(A::AbstractVector, s=first(linearindices(A)), n=last(linearindi
13961396
end
13971397
return B
13981398
end
1399+
1400+
# to resolve ambiguity with reverse(A; dims)
1401+
reverse(A::Vector) = invoke(reverse, Tuple{AbstractVector}, A)
1402+
13991403
function reverseind(a::AbstractVector, i::Integer)
14001404
li = linearindices(a)
14011405
first(li) + last(li) - i

base/arraymath.jl

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -58,8 +58,8 @@ end
5858

5959
## data movement ##
6060

61-
function flipdim(A::Array{T}, d::Integer) where T
62-
nd = ndims(A)
61+
function reverse(A::Array{T}; dims::Integer) where T
62+
nd = ndims(A); d = dims
6363
1 d nd || throw(ArgumentError("dimension $d is not 1 ≤ $d$nd"))
6464
sd = size(A, d)
6565
if sd == 1 || isempty(A)
@@ -73,7 +73,7 @@ function flipdim(A::Array{T}, d::Integer) where T
7373
nnd += Int(size(A,i)==1 || i==d)
7474
end
7575
if nnd==nd
76-
# flip along the only non-singleton dimension
76+
# reverse along the only non-singleton dimension
7777
for i = 1:sd
7878
B[i] = A[sd+1-i]
7979
end

base/bitarray.jl

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1205,8 +1205,8 @@ end
12051205

12061206
# TODO some of this could be optimized
12071207

1208-
function flipdim(A::BitArray, d::Integer)
1209-
nd = ndims(A)
1208+
function reverse(A::BitArray; dims::Integer)
1209+
nd = ndims(A); d = dims
12101210
1 d nd || throw(ArgumentError("dimension $d is not 1 ≤ $d$nd"))
12111211
sd = size(A, d)
12121212
sd == 1 && return copy(A)
@@ -1218,7 +1218,7 @@ function flipdim(A::BitArray, d::Integer)
12181218
nnd += Int(size(A,i)==1 || i==d)
12191219
end
12201220
if nnd == nd
1221-
# flip along the only non-singleton dimension
1221+
# reverse along the only non-singleton dimension
12221222
for i = 1:sd
12231223
B[i] = A[sd+1-i]
12241224
end

base/deprecated.jl

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1338,6 +1338,8 @@ export readandwrite
13381338
@deprecate cumprod(A::AbstractArray, dim::Integer) cumprod(A, dims=dim)
13391339
@deprecate cumprod!(B, A, dim::Integer) cumprod!(B, A, dims=dim)
13401340

1341+
@deprecate flipdim(A, d) reverse(A, dims=d)
1342+
13411343
# PR #25196
13421344
@deprecate_binding ObjectIdDict IdDict{Any,Any}
13431345

base/exports.jl

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -382,7 +382,6 @@ export
382382
fill!,
383383
fill,
384384
first,
385-
flipdim,
386385
hcat,
387386
hvcat,
388387
indexin,

doc/src/base/arrays.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,6 @@ Base.vcat
115115
Base.hcat
116116
Base.hvcat
117117
Base.vect
118-
Base.flipdim
119118
Base.circshift
120119
Base.circshift!
121120
Base.circcopy!

test/abstractarray.jl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -765,8 +765,8 @@ end
765765
end
766766
end
767767

768-
@testset "flipdim on empty" begin
769-
@test flipdim(Diagonal([]),1) == Diagonal([])
768+
@testset "reverse dim on empty" begin
769+
@test reverse(Diagonal([]),dims=1) == Diagonal([])
770770
end
771771

772772
@testset "ndims and friends" begin

test/arrayops.jl

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1337,20 +1337,20 @@ end
13371337
@test reverse!(Any[]) == Any[]
13381338
end
13391339

1340-
@testset "flipdim" begin
1341-
@test isequal(flipdim([2,3,1], 1), [1,3,2])
1342-
@test_throws ArgumentError flipdim([2,3,1], 2)
1343-
@test isequal(flipdim([2 3 1], 1), [2 3 1])
1344-
@test isequal(flipdim([2 3 1], 2), [1 3 2])
1345-
@test_throws ArgumentError flipdim([2,3,1], -1)
1346-
@test isequal(flipdim(1:10, 1), 10:-1:1)
1347-
@test_throws ArgumentError flipdim(1:10, 2)
1348-
@test_throws ArgumentError flipdim(1:10, -1)
1349-
@test isequal(flipdim(Matrix{Int}(undef, 0,0),1), Matrix{Int}(undef, 0,0)) # issue #5872
1340+
@testset "reverse dim" begin
1341+
@test isequal(reverse([2,3,1], dims=1), [1,3,2])
1342+
@test_throws ArgumentError reverse([2,3,1], dims=2)
1343+
@test isequal(reverse([2 3 1], dims=1), [2 3 1])
1344+
@test isequal(reverse([2 3 1], dims=2), [1 3 2])
1345+
@test_throws ArgumentError reverse([2,3,1], dims=-1)
1346+
@test isequal(reverse(1:10, dims=1), 10:-1:1)
1347+
@test_throws ArgumentError reverse(1:10, dims=2)
1348+
@test_throws ArgumentError reverse(1:10, dims=-1)
1349+
@test isequal(reverse(Matrix{Int}(undef, 0,0),dims=1), Matrix{Int}(undef, 0,0)) # issue #5872
13501350

13511351
a = rand(5,3)
1352-
@test flipdim(flipdim(a,2),2) == a
1353-
@test_throws ArgumentError flipdim(a,3)
1352+
@test reverse(reverse(a,dims=2),dims=2) == a
1353+
@test_throws ArgumentError reverse(a,dims=3)
13541354
end
13551355

13561356
@testset "isdiag, istril, istriu" begin
@@ -1954,8 +1954,8 @@ copyto!(S, A)
19541954
@test mapslices(sort, A, 1) == mapslices(sort, B, 1) == mapslices(sort, S, 1)
19551955
@test mapslices(sort, A, 2) == mapslices(sort, B, 2) == mapslices(sort, S, 2)
19561956

1957-
@test flipdim(A, 1) == flipdim(B, 1) == flipdim(S, 2)
1958-
@test flipdim(A, 2) == flipdim(B, 2) == flipdim(S, 2)
1957+
@test reverse(A, dims=1) == reverse(B, dims=1) == reverse(S, dims=2)
1958+
@test reverse(A, dims=2) == reverse(B, dims=2) == reverse(S, dims=2)
19591959

19601960
@test A .+ 1 == B .+ 1 == S .+ 1
19611961
@test 2*A == 2*B == 2*S

test/bitarray.jl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1036,9 +1036,9 @@ timesofar("binary comparison")
10361036
#for j = 1 : size(b1, d)
10371037
@check_bit_operation selectdim(b1, d, j) SubArray{Bool, 3, BitArray{4}}
10381038
#end
1039-
@check_bit_operation flipdim(b1, d) BitArray{4}
1039+
@check_bit_operation reverse(b1, dims=d) BitArray{4}
10401040
end
1041-
@test_throws ArgumentError flipdim(b1, 5)
1041+
@test_throws ArgumentError reverse(b1, dims=5)
10421042

10431043
b1 = bitrand(n1, n2)
10441044
for k = 1:4

test/offsetarray.jl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -420,8 +420,8 @@ v = OffsetArray(rand(8), (-2,))
420420

421421
@test rotl90(A) == OffsetArray(rotl90(parent(A)), A.offsets[[2,1]])
422422
@test rotr90(A) == OffsetArray(rotr90(parent(A)), A.offsets[[2,1]])
423-
@test flipdim(A, 1) == OffsetArray(flipdim(parent(A), 1), A.offsets)
424-
@test flipdim(A, 2) == OffsetArray(flipdim(parent(A), 2), A.offsets)
423+
@test reverse(A, dims=1) == OffsetArray(reverse(parent(A), dims=1), A.offsets)
424+
@test reverse(A, dims=2) == OffsetArray(reverse(parent(A), dims=2), A.offsets)
425425

426426
@test A .+ 1 == OffsetArray(parent(A) .+ 1, A.offsets)
427427
@test 2*A == OffsetArray(2*parent(A), A.offsets)

test/subarray.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -577,7 +577,7 @@ let
577577
end
578578

579579
# ref issue #17351
580-
@test @inferred(flipdim(view([1 2; 3 4], :, 1), 1)) == [3, 1]
580+
@test @inferred(reverse(view([1 2; 3 4], :, 1), dims=1)) == [3, 1]
581581

582582
let
583583
s = view(reshape(1:6, 2, 3), 1:2, 1:2)

0 commit comments

Comments
 (0)