STAPL API Reference          
Overview   Containers   Algorithms   Views   Skeletons   Run-Time System
Modules     Classes    
List of all members | Public Member Functions | Public Types
stapl::skeletons::skeletons_impl::pointer_jumping< Op, Flows > Struct Template Reference

This class abstracts the semantics of pointer jumping skeleton by exposing only the necessary information in its representation. More...

Public Member Functions

 pointer_jumping (Op const &op)
 
Op get_op (void) const
 
std::size_t operator() (std::size_t a)
 

Public Types

using skeleton_tag_type = tags::pointer_jumping
 
using base_type = decltype(skeletons::repeat< Flows >(skeletons::elem(skeletons::pointer_jumping_pd(std::declval< Op >())), log_ceil_lazysize< 2 >()))
 
using op_type = Op
 

Detailed Description

template<typename Op, typename Flows>
struct stapl::skeletons::skeletons_impl::pointer_jumping< Op, Flows >

This class abstracts the semantics of pointer jumping skeleton by exposing only the necessary information in its representation.

Pointer jumping skeleton (aka recursive doubling) is used in various computations such as Hillis-Steele scan.

A pointer jumping skeleton consists of log2 levels ( $k$) of reading from $i - 2^{k}$ and combining the value with the value already existing at index $i$.

This abstraction not only makes the reconstruction of an pointer_jumping skeleton easier, but also provides access to the underlying operation. Furthermore, it reduces the symbol size for an allreduce skeleton, hence, reducing the total compilation time.

Template Parameters
Opthe operation to be used in each level
Flowsthe flows to be used for the repetition

The documentation for this struct was generated from the following file: