diff --git a/base/subarray.jl b/base/subarray.jl index 8ab03f18937ee..3f6d2cc251e82 100644 --- a/base/subarray.jl +++ b/base/subarray.jl @@ -170,11 +170,18 @@ similar(s::SubArray, T, dims::Dims) = similar(s.parent, T, dims) getindex{T}(s::SubArray{T,0,AbstractArray{T,0}}) = s.parent[] getindex{T}(s::SubArray{T,0}) = s.parent[s.first_index] -getindex{T}(s::SubArray{T,1}, i::Integer) = s.parent[s.first_index + (i-1)*s.strides[1]] +getindex{T}(s::SubArray{T,1}, i::Integer) = + s.parent[s.first_index + (i-1)*s.strides[1]] getindex{T}(s::SubArray{T,1}, i::Integer, j::Integer) = j==1 ? s.parent[s.first_index + (i-1)*s.strides[1]] : throw(BoundsError()) getindex{T}(s::SubArray{T,2}, i::Integer, j::Integer) = s.parent[s.first_index + (i-1)*s.strides[1] + (j-1)*s.strides[2]] +getindex{T}(s::SubArray{T,3}, i::Integer, j::Integer, k::Integer) = + s.parent[s.first_index + (i-1)*s.strides[1] + (j-1)*s.strides[2] + (k-1)*s.strides[3]] +getindex{T}(s::SubArray{T,4}, i::Integer, j::Integer, k::Integer, l::Integer) = + s.parent[s.first_index + (i-1)*s.strides[1] + (j-1)*s.strides[2] + (k-1)*s.strides[3] + (l-1)*s.strides[4]] +getindex{T}(s::SubArray{T,5}, i::Integer, j::Integer, k::Integer, l::Integer, m::Integer) = + s.parent[s.first_index + (i-1)*s.strides[1] + (j-1)*s.strides[2] + (k-1)*s.strides[3] + (l-1)*s.strides[4] + (m-1)*s.strides[5]] getindex(s::SubArray, i::Real) = getindex(s, to_index(i)) getindex(s::SubArray, i0::Real, i1::Real) = @@ -183,8 +190,12 @@ getindex(s::SubArray, i0::Real, i1::Real, i2::Real) = getindex(s, to_index(i0), to_index(i1), to_index(i2)) getindex(s::SubArray, i0::Real, i1::Real, i2::Real, i3::Real) = getindex(s, to_index(i0), to_index(i1), to_index(i2), to_index(i3)) -getindex(s::SubArray, i0::Real, i1::Real, i2::Real, i3::Real, is::Int...) = - getindex(s, to_index(i0), to_index(i1), to_index(i2), to_index(i3), is...) +getindex(s::SubArray, i0::Real, i1::Real, i2::Real, i3::Real, i4::Real) = + getindex(s, to_index(i0), to_index(i1), to_index(i2), to_index(i3), to_index(i4)) +getindex(s::SubArray, i0::Real, i1::Real, i2::Real, i3::Real, i4::Real, i5::Real) = + getindex(s, to_index(i0), to_index(i1), to_index(i2), to_index(i3), to_index(i4), to_index(i5)) +getindex(s::SubArray, i0::Real, i1::Real, i2::Real, i3::Real, i4::Real, i5::Real, is::Int...) = + getindex(s, to_index(i0), to_index(i1), to_index(i2), to_index(i3), to_index(i4), to_index(5), is...) getindex(s::SubArray, i::Integer) = s[ind2sub(size(s), i)...] @@ -330,6 +341,15 @@ setindex!{T}(s::SubArray{T,1}, v, i::Integer) = setindex!{T}(s::SubArray{T,2}, v, i::Integer, j::Integer) = setindex!(s.parent, v, s.first_index +(i-1)*s.strides[1]+(j-1)*s.strides[2]) +setindex!{T}(s::SubArray{T,3}, v, i::Integer, j::Integer, k::Integer) = + setindex!(s.parent, v, s.first_index +(i-1)*s.strides[1]+(j-1)*s.strides[2]+(k-1)*s.strides[3]) + +setindex!{T}(s::SubArray{T,4}, v, i::Integer, j::Integer, k::Integer, l::Integer) = + setindex!(s.parent, v, s.first_index +(i-1)*s.strides[1]+(j-1)*s.strides[2]+(k-1)*s.strides[3]+(l-1)*s.strides[4]) + +setindex!{T}(s::SubArray{T,5}, v, i::Integer, j::Integer, k::Integer, l::Integer, m::Integer) = + setindex!(s.parent, v, s.first_index +(i-1)*s.strides[1]+(j-1)*s.strides[2]+(k-1)*s.strides[3]+(l-1)*s.strides[4]+(m-1)*s.strides[5]) + setindex!{T}(s::SubArray{T,1}, v, I::Range1{Int}) = setindex!(s.parent, v, (s.first_index+(first(I)-1)*s.strides[1]):s.strides[1]:(s.first_index+(last(I)-1)*s.strides[1])) diff --git a/deps/libuv b/deps/libuv index fb80ae6a7615a..b83a961400389 160000 --- a/deps/libuv +++ b/deps/libuv @@ -1 +1 @@ -Subproject commit fb80ae6a7615a5dbda6013910ac38c7251a48faf +Subproject commit b83a961400389a5bb60aec36cd56fece32b91291