 
 
 /**
- * Tuning policy for BlockReduceTiles
+ * Tuning policy for BlockScanTiles
  */
 template <
     int                         _BLOCK_THREADS,
     int                         _ITEMS_PER_THREAD,
-    int                         _VECTOR_LOAD_LENGTH,
-    PtxLoadModifier             _LOAD_MODIFIER,
-    GridMappingStrategy         _GRID_MAPPING,
+    BlockLoadPolicy             _LOAD_POLICY,
+    BlockStorePolicy            _STORE_POLICY,
     int                         _OVERSUBSCRIPTION>
 struct BlockScanTilesPolicy
 {


public:

    /// \smemstorage{BlockReduceTiles}
    typedef _SmemStorage SmemStorage;

private:

    {
        BLOCK_THREADS       = _BLOCK_THREADS,
        ITEMS_PER_THREAD    = _ITEMS_PER_THREAD,
        OVERSUBSCRIPTION    = _OVERSUBSCRIPTION,
    };

    static const BlockLoadPolicy        LOAD_POLICY      = _LOAD_POLICY;
    static const BlockStorePolicy       STORE_POLICY     = _STORE_POLICY;
};


/**
 * \brief BlockScanTiles implements an abstraction of CUDA thread blocks for
 * participating in device-wide reduction.
 */
template <
    typename BlockScanTilesPolicy,
    typename InputIterator,
    typename OutputIterator,
    typename SizeT>
class BlockScanTiles
{
private:

