@inbounds

@inbounds

쿠키 1 2383 0 0
. 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

1 Comments
류대식 2022.02.15 23:47  
인덱스 내에 있는지 여부를 판단하는 과정을 생략해서 속도를 개선시키는 매크로 아닌가요
반응형 구글광고 등
State
  • 현재 접속자 18 명
  • 오늘 방문자 616 명
  • 어제 방문자 514 명
  • 최대 방문자 3,289 명
  • 전체 방문자 352,242 명
  • 전체 게시물 0 개
  • 전체 댓글수 0 개
  • 전체 회원수 93 명