This blocks updates the value of the output array to match the
value of the input array only if the time since the last update
exceeds holdDuration. Otherwise, the value of the
output array is kept equal to its value at the time of the last
update. At initial time, the value of the output array is set to
the value of the input array, and this is considered as the first
update time.