STAPL API Reference          
Overview   Containers   Algorithms   Views   Skeletons   Run-Time System
Modules     Classes    
List of all members | Public Member Functions | Public Types
stapl::skeletons::wrapped_skeleton< S, ExecutionTag, ExecutionParams, requiresTGV > Class Template Reference

A wrapped_skeleton is used in the nested execution of skeletons. More...

Public Member Functions

 wrapped_skeleton (S const &skeleton, ExecutionParams const &exec_params)
 
template<typename ... V>
result< wrapped_skeleton(V...)>::type operator() (V &&... view) const
 
template<typename ... V>
result< wrapped_skeleton(V...)>::type operator() (V &&... view)
 
S const & get_skeleton () const
 
ExecutionParams get_exec_params () const
 

Public Types

using optimizer_t = optimizers::optimizer< typename S::skeleton_tag_type, ExecutionTag >
 
using wrapped_skeleton_type = S
 
using execution_params_t = ExecutionParams
 

Detailed Description

template<typename S, typename ExecutionTag, typename ExecutionParams, bool requiresTGV>
class stapl::skeletons::wrapped_skeleton< S, ExecutionTag, ExecutionParams, requiresTGV >

A wrapped_skeleton is used in the nested execution of skeletons.

An ExecutionTag is used to customize the execution method. By default, a PARAGRAPH will be created for a wrapped skeleton. This behavior can be customized by providing a custom ExecutionTag to this class. For example, passing a sequential execution tag (tags::sequential_execution), avoids creating a PARAGRAPH for the nested computation.

A wrapped_skeleton passes the skeleton to specializations of the optimizer. These specializations are defined over the skeleton and ExecutionTag. For example, the specialization for the reduce skeleton (optimizer<tags::reduce, tags::sequential_execution>) implements this skeleton using std::accumulate.

See also
optimizers/nested.hpp
optimizers/reduce.hpp
Template Parameters
Sthe skeleton to be wrapped
ExecutionTaga tag defining the execution strategy for this skeleton
requiresTGVa boolean variable to determine whether this wrapped skeleton needs paragraph_view or not

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