21 #ifndef __TBB_blocked_range3d_H 22 #define __TBB_blocked_range3d_H 31 template<
typename PageValue,
typename RowValue=PageValue,
typename ColValue=RowValue>
47 RowValue row_begin, RowValue row_end,
48 ColValue col_begin, ColValue col_end ) :
57 my_pages(page_begin,page_end,page_grainsize),
58 my_rows(row_begin,row_end,row_grainsize),
59 my_cols(col_begin,col_end,col_grainsize)
82 #if __TBB_USE_PROPORTIONAL_SPLIT_IN_BLOCKED_RANGES 106 template <
typename Split>
blocked_range< PageValue > page_range_type
Type for size of an iteration range.
Type enables transmission of splitting proportion from partitioners to range objects.
blocked_range3d(blocked_range3d &r, split)
const row_range_type & rows() const
The rows of the iteration space.
A 3-dimensional range that models the Range concept.
blocked_range3d(blocked_range3d &r, proportional_split &proportion)
const col_range_type & cols() const
The columns of the iteration space.
static ColValue do_split(blocked_range &r, split)
Auxiliary function used by the splitting constructor.
size_type size() const
Size of the range.
void do_split(blocked_range3d &r, Split &split_obj)
blocked_range< ColValue > col_range_type
bool is_divisible() const
True if range is divisible into two pieces.
bool empty() const
True if range is empty.
Dummy type that distinguishes splitting constructor from copy constructor.
bool empty() const
True if range is empty.
bool is_divisible() const
True if range is divisible.
const page_range_type & pages() const
The pages of the iteration space.
size_type grainsize() const
The grain size for this range.
std::size_t size_type
Type for size of a range.
blocked_range< RowValue > row_range_type
blocked_range3d(PageValue page_begin, PageValue page_end, RowValue row_begin, RowValue row_end, ColValue col_begin, ColValue col_end)
static const bool is_splittable_in_proportion
Static field to support proportional split.
blocked_range3d(PageValue page_begin, PageValue page_end, typename page_range_type::size_type page_grainsize, RowValue row_begin, RowValue row_end, typename row_range_type::size_type row_grainsize, ColValue col_begin, ColValue col_end, typename col_range_type::size_type col_grainsize)