Mercurial > repos > public > sbplib_julia
changeset 72:4640839b1616 cell_based_test
Make apply operator more efficient using @inbounds and @inline
author | Jonatan Werpers <jonatan@werpers.com> |
---|---|
date | Fri, 18 Jan 2019 14:26:04 +0100 |
parents | 18d0d794d3bb |
children | 45dece5e4928 |
files | sbpD2.jl |
diffstat | 1 files changed, 4 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/sbpD2.jl Fri Jan 18 14:21:58 2019 +0100 +++ b/sbpD2.jl Fri Jan 18 14:26:04 2019 +0100 @@ -1,15 +1,15 @@ abstract type ConstantStencilOperator end -function apply(op::ConstantStencilOperator, h::Real, v::AbstractVector, i::Int) +@inline function apply(op::ConstantStencilOperator, h::Real, v::AbstractVector, i::Int) cSize = closureSize(op) N = length(v) if i ∈ range(1; length=cSize) - uᵢ = apply(op.closureStencils[i], v, i)/h^2 + @inbounds uᵢ = apply(op.closureStencils[i], v, i)/h^2 elseif i ∈ range(N - cSize+1, length=cSize) - uᵢ = Int(op.parity)*apply(flip(op.closureStencils[N-i+1]), v, i)/h^2 + @inbounds uᵢ = Int(op.parity)*apply(flip(op.closureStencils[N-i+1]), v, i)/h^2 else - uᵢ = apply(op.innerStencil, v, i)/h^2 + @inbounds uᵢ = apply(op.innerStencil, v, i)/h^2 end return uᵢ