mult_and_reduce_scan is the fastest approach so far, but it's still way too slow. Need to find a better way to do the multiplication.