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ᵢ