@inbounds
쿠키
1
2385
0
0
2022.02.15 14:27
.
julia> function foo(A::AbstractArray, n)
r = zero(eltype(A))
for i = 1:n
@inbounds r += A[i]
end
return r
end
foo (generic function with 1 method)
julia> A = rand(2,2)
2×2 Matrix{Float64}:
0.49195 0.42271
0.834118 0.142117
julia> foo(A, 10)
1.8908945643208925
julia> sum(A)
1.8908945643208925
@inbounds 는 반복문에서 인덱스가 행렬의 인덱스 내에 있는지 여부를 판단하고 초과하지 않는 경우 계산을 수행합니다.
아래와 같이 if문을 통해 처리할 수도 있지만, 코드를 간결하게 만들 때 사용하면 좋을 것 같습니다.
julia> function foo2(A::AbstractArray, n)
r = zero(eltype(A))
for i = 1:n
if i ≤ length(A)
r +=A[i]
end
end
return r
end
foo2 (generic function with 1 method)
julia> foo2(A, 10)
1.8908945643208925
출처
https://docs.julialang.org/en/v1/base/base/#Base.@inbounds