# blocked_range( blocked_range& range, split )

## Requirements

`is_divisible()` is true.

## Effects

Partitions `range` into two subranges. The newly constructed`blocked_range` is approximately the second half of the original `range`, and `range` is updated to be the remainder. Each subrange has the same `grainsize` as the original range.

## Example

Let`i` and`j` be integers that define a half-open interval `[ i, j)` and let `g` specifiy a grain size. The statement `blocked_range<int> r(i,j,g)` constructs a `blocked_range<int>` that represents`[ i, j)` with grain size`g`. Running the statement`blocked_range<int> s(r,split);` subsequently causes r to represent`[ i, i +( j - i)/2)` and `s` to represent`[ i +( j - i)/2, j)`, both with grain size`g`.

Parent topic: blocked_range Template Class