From 10fa36cdd97628b8c6b8da664b9024c67da2f090 Mon Sep 17 00:00:00 2001 From: David MacMahon Date: Wed, 24 Mar 2021 20:21:12 -0700 Subject: [PATCH] Use `even` to tweak length of `make_steps` output If `even` in false, `make_steps` returns an odd-length (2n-1) Vector as it did before. If even is `true`, `make_steps` now returns an even-length (2n) Vector whose first (2n-1) elements are the same as before and whose final element is the same as the final element of the input Vector. --- src/recipes.jl | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/recipes.jl b/src/recipes.jl index 5ee52f5f..52310696 100644 --- a/src/recipes.jl +++ b/src/recipes.jl @@ -185,13 +185,14 @@ make_steps(x, st, even) = x function make_steps(x::AbstractArray, st, even) n = length(x) n == 0 && return zeros(0) - newx = zeros(2n - 1) + newx = zeros(2n - (even ? 0 : 1)) newx[1] = x[1] for i = 2:n idx = 2i - 1 newx[idx] = x[i] newx[idx - 1] = x[st == :pre ? i : i - 1] end + even && (newx[end] = x[end]) return newx end make_steps(t::Tuple, st, even) = Tuple(make_steps(ti, st, even) for ti in t)