代码拉取完成,页面将自动刷新
"""
module OffsetDenseArrays
A minimal implementation of an offset array which is also <: DenseArray.
"""
module OffsetDenseArrays
struct OffsetDenseArray{A <: DenseVector, T} <: DenseVector{T}
x::A
offset::Int
end
OffsetDenseArray(x::AbstractVector{T}, i::Integer) where {T} = OffsetDenseArray{typeof(x), T}(x, Int(i))
Base.size(x::OffsetDenseArray) = size(x.x)
Base.pointer(x::OffsetDenseArray) = pointer(x.x)
function Base.getindex(x::OffsetDenseArray, i::Integer)
@boundscheck checkbounds(x.x, i - x.offset)
x.x[i - x.offset]
end
function Base.setindex(x::OffsetDenseArray, v, i::Integer)
@boundscheck checkbounds(x.x, i - x.offset)
x.x[i - x.offset] = v
end
Base.IndexStyle(::Type{<:OffsetDenseArray}) = Base.IndexLinear()
Base.axes(x::OffsetDenseArray) = (x.offset + 1 : x.offset + length(x.x),)
Base.keys(x::OffsetDenseArray) = only(axes(x))
end # module
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。