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::butterfly< Op, is_pos_aware, is_reversed, Filter, Flows, Span > Struct Template Reference

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

Public Member Functions

 butterfly (Op const &op, Filter const &filter)
 
Op get_op (void) const
 
Filter get_filter (void) const
 
std::size_t operator() (std::size_t a)
 

Public Types

using skeleton_tag_type = typename std::conditional< is_reversed, tags::reverse_butterfly< std::is_same< Filter, stapl::use_default >::value >, tags::butterfly< std::is_same< Filter, stapl::use_default >::value > >::type
 
using op_type = Op
 
using base_type = decltype(skeletons::repeat< Flows >(skeletons::elem< Span >(skeletons::butterfly_pd< is_pos_aware, is_reversed >(std::declval< Op >(), std::declval< Filter >())), log_lazysize< 2 >()))
 

Detailed Description

template<typename Op, bool is_pos_aware, bool is_reversed, typename Filter, typename Flows, typename Span>
struct stapl::skeletons::skeletons_impl::butterfly< Op, is_pos_aware, is_reversed, Filter, Flows, Span >

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

An butterfly skeleton is a well-known skeleton used especially in network configuration and other applications such as FFT.

This abstraction not only makes the reconstruction of a butterfly skeleton easier, but also provides access to the underlying operation and filter used in each level. Furthermore, it reduces the symbol size for an butterfly skeleton, hence, reducing the total compilation time.

Template Parameters
Opthe operation to be used while reducing the input.
is_pos_awarewhether the computation needs spatial information for its computation or not.
is_reversedwhether this butterfly is a regular or a reversed butterfly
Filterthe filter to be applied on the result of each computation. In some algorithms only a portion of the produced data by Op is passed to the next computations.
Flowsthe flow between levels of the butterfly skeleton.
Spanthe iteration space for elements on each level of the butterfly skeleton

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