Reflect via indices outside boundaries #3
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR adds
HighDimPDE_reflect_outs, another implementation ofHighDimPDE._reflect/HighDimPDE._reflect_GPU, which computesout(out1andout2) along withrtemp/rminexclusively from indices ofbwhere it "lies outside the boundary of[s,e]^d".One should be able to reuse these indices in the while loop, but repeated reflections along a given dimension are slightly trickier to handle. These repeated reflections appear to be relatively uncommon, so a workaround would be to recompute
out1,out2andoutonly for these cases in a given iteration._swap_boundary_outs!doesn't seem to work as expected, but the idea was to avoid recomputingout1andout2within the while loop.I added some benchmarks, comparing the
reflectmethods ford-dimensional trajectories. Note that this is done withbatch_size=1, see added code inprofiling/reflect.jl.Click to view benchmark results