blocked_range3d テンプレート・クラス

概要

再帰的に分割可能な 3 次元の半開区間を表すテンプレート・クラス。

ヘッダー

#include "tbb/blocked_range3d.h"

構文

template<typename PageValue, typename RowValue, typename ColValue> class blocked_range3d;

説明

blocked_range3d<PageValue,RowValue,ColValue> は、blocked_range2d の 3 次元拡張です。

メンバー

namespace tbb {
template<typename PageValue, typename RowValue=PageValue, typename ColValue=RowValue>
    class blocked_range3d {
    public:
        // 型
        typedef blocked_range<PageValue> page_range_type;
        typedef blocked_range<RowValue> row_range_type;
        typedef blocked_range<ColValue> col_range_type;

        // コンストラクター
        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);
        blocked_range3d( PageValue page_begin, PageValue page_end,  
                         RowValue row_begin, RowValue row_end, 
                         ColValue col_begin, ColValue col_end);
        blocked_range3d( blocked_range3d& r, split );
        blocked_range3d( blocked_range3d& r, proportional_split& proportion );

        // 比例分割が可能
        static const bool is_splittable_in_proportion = true;

        // キャパシティー
        bool empty() const;

        // アクセス
        bool is_divisible() const;
        const page_range_type& pages() const;
        const row_range_type& rows() const;
        const col_range_type& cols() const;
    };
}