Mercurial > repos > public > sbplib_julia
changeset 1065:fdd594b2a15e feature/nested_stencils
Fix type instability in apply_stencil_backwards and add tests
(grafted from a3bc90c59e8e89de3535c7767963f3a3010c4f4c)
author | Jonatan Werpers <jonatan@werpers.com> |
---|---|
date | Tue, 15 Feb 2022 08:08:19 +0100 |
parents | a601427023e3 |
children | d13f84dc267a |
files | src/SbpOperators/stencil.jl test/SbpOperators/stencil_test.jl |
diffstat | 2 files changed, 14 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/src/SbpOperators/stencil.jl Tue Feb 15 07:54:52 2022 +0100 +++ b/src/SbpOperators/stencil.jl Tue Feb 15 08:08:19 2022 +0100 @@ -78,7 +78,7 @@ end Base.@propagate_inbounds @inline function apply_stencil_backwards(s::Stencil, v::AbstractVector, i::Int) - w = zero(eltype(v)) + w = zero(promote_type(eltype(s),eltype(v))) @simd for k ∈ length(s):-1:1 w += s.weights[k]*v[i - s.range[k]] end
--- a/test/SbpOperators/stencil_test.jl Tue Feb 15 07:54:52 2022 +0100 +++ b/test/SbpOperators/stencil_test.jl Tue Feb 15 08:08:19 2022 +0100 @@ -55,7 +55,10 @@ @inferred SbpOperators.apply_stencil(s_int, v_float, 2) @inferred SbpOperators.apply_stencil(s_float, v_int, 2) - # TODO: apply backwards + @inferred SbpOperators.apply_stencil_backwards(s_int, v_int, 5) + @inferred SbpOperators.apply_stencil_backwards(s_float, v_float, 5) + @inferred SbpOperators.apply_stencil_backwards(s_int, v_float, 5) + @inferred SbpOperators.apply_stencil_backwards(s_float, v_int, 5) end end @@ -157,7 +160,15 @@ @inferred SbpOperators.apply_stencil(s_int, c_float, v_float, 2) @inferred SbpOperators.apply_stencil(s_float, c_float, v_int, 2) - # TODO: apply backwards + @inferred SbpOperators.apply_stencil_backwards(s_int, c_int, v_int, 2) + @inferred SbpOperators.apply_stencil_backwards(s_float, c_int, v_float, 2) + @inferred SbpOperators.apply_stencil_backwards(s_int, c_int, v_float, 2) + @inferred SbpOperators.apply_stencil_backwards(s_float, c_int, v_int, 2) + + @inferred SbpOperators.apply_stencil_backwards(s_int, c_float, v_int, 2) + @inferred SbpOperators.apply_stencil_backwards(s_float, c_float, v_float, 2) + @inferred SbpOperators.apply_stencil_backwards(s_int, c_float, v_float, 2) + @inferred SbpOperators.apply_stencil_backwards(s_float, c_float, v_int, 2) end end