Adjust a proposal according to its support by reflecting it. This is the workhorse of kernel_normal_reflective and kernel_unif_reflective. It is intended for internal use only.

reflect_on_boundaries(x, lb, ub, which)

Arguments

x

A numeric vector. The proposal

lb, ub

Numeric vectors of length length(x). Lower and upper bounds.

which

Integer vector. Index of variables to be updated.

Value

An adjusted proposal vector.