Reduces the elements of values using the binary operation op in O(n) steps, but
with a dependency depth of O(log n), allowing for better instruction-level parallelism.
Reduces the elements of values in place using the binary operation op in O(n) steps, but
with a dependency depth of O(log n), allowing for better instruction-level parallelism.