Given an inclusive range defined by [low .. high], split the
range in the middle and produce two new inclusive ranges.
The lower and upper bounds of the lower range are stored in
out[0] and out[1], respectively. The lower and
upper bounds of the upper range are stored in out[2] and
out[3], respectively.
author Mark Raynsford