Since the function changed from taking 4 parameters to taking 2 (it is no longer supporting the offset), it seems that the underlying logic changed.
I would expect create_run_matrix(10, 10) to create a 10 x 10 matrix, but instead it creates and 11 x 11 matrix. Is this on purpose?