GrPPI  1.0
Generic and Reusable Parallel Pattern Interface
Functions
Stencil pattern

Interface for applyinng the Stencil pattern. More...

Collaboration diagram for Stencil pattern:

Functions

template<typename Execution , typename ... InputIterators, typename OutputIt , typename StencilTransformer , typename Neighbourhood , requires_iterators< InputIterators... > = 0, requires_iterator< OutputIt > = 0>
void grppi::stencil (const Execution &ex, std::tuple< InputIterators... > firsts, std::size_t size, OutputIt out, StencilTransformer &&transform_op, Neighbourhood &&neighbour_op)
 Invoke Stencil pattern on a data sequence with sequential execution. More...
 
template<typename Execution , typename ... InputIterators, typename InputIt , typename OutputIt , typename StencilTransformer , typename Neighbourhood , requires_iterators< InputIterators... > = 0, requires_iterator< InputIt > = 0, requires_iterator< OutputIt > = 0>
void grppi::stencil (const Execution &ex, std::tuple< InputIterators... > firsts, InputIt last, OutputIt out, StencilTransformer &&transform_op, Neighbourhood &&neighbour_op)
 Invoke Stencil pattern on a data sequence with sequential execution. More...
 
template<typename Execution , typename InputIt , typename OutputIt , typename StencilTransformer , typename Neighbourhood , requires_iterator< InputIt > = 0, requires_iterator< OutputIt > = 0>
void grppi::stencil (const Execution &ex, InputIt first, InputIt last, OutputIt out, StencilTransformer &&transform_op, Neighbourhood &&neighbour_op)
 Invoke Stencil pattern on a data sequence with sequential execution. More...
 
template<typename Execution , typename InputIt , typename OutputIt , typename StencilTransformer , typename Neighbourhood , typename ... OtherInputIts, requires_iterator< InputIt > = 0, requires_iterator< OutputIt > = 0>
void grppi::stencil (const Execution &ex, InputIt first, InputIt last, OutputIt out, StencilTransformer &&transform_op, Neighbourhood &&neighbour_op, OtherInputIts ... other_firsts)
 Invoke Stencil pattern on multiple data sequences with sequential execution. More...
 

Detailed Description

Interface for applyinng the Stencil pattern.

Function Documentation

◆ stencil() [1/4]

template<typename Execution , typename InputIt , typename OutputIt , typename StencilTransformer , typename Neighbourhood , requires_iterator< InputIt > = 0, requires_iterator< OutputIt > = 0>
void grppi::stencil ( const Execution &  ex,
InputIt  first,
InputIt  last,
OutputIt  out,
StencilTransformer &&  transform_op,
Neighbourhood &&  neighbour_op 
)

Invoke Stencil pattern on a data sequence with sequential execution.

Template Parameters
ExecutionExecution type.
InputItIterator type used for the input sequence.
OutputItIterator type used for the output sequence
NeighbourhoodCallable type for obtaining the neighbourhood.
StencilTransformerCallable type for performing the stencil transformation.
Parameters
exExecution policy object.
firstIterator to the first element in the input sequence.
lastIterator to one past the end of the input sequence.
outIterator to the first element in the output sequence.
transform_opStencil transformation operation.
neighbour_opNeighbourhood operation.

◆ stencil() [2/4]

template<typename Execution , typename InputIt , typename OutputIt , typename StencilTransformer , typename Neighbourhood , typename ... OtherInputIts, requires_iterator< InputIt > = 0, requires_iterator< OutputIt > = 0>
void grppi::stencil ( const Execution &  ex,
InputIt  first,
InputIt  last,
OutputIt  out,
StencilTransformer &&  transform_op,
Neighbourhood &&  neighbour_op,
OtherInputIts ...  other_firsts 
)

Invoke Stencil pattern on multiple data sequences with sequential execution.

Template Parameters
ExecutionExecution type.
InputItIterator type used for the input sequence.
OutputItIterator type used for the output sequence
NeighbourhoodCallable type for obtaining the neighbourhood.
StencilTransformerCallable type for performing the stencil transformation.
OtherInputItsIterator types for additional input sequences.
Parameters
exExecution policy object.
firstIterator to the first element in the input sequence.
lastIterator to one past the end of the input sequence.
outIterator to the first element in the output sequence.
transform_opStencil transformation operation.
neighbour_opNeighbourhood operation.
other_firstsIterators to the first element of additional input sequences.

◆ stencil() [3/4]

template<typename Execution , typename ... InputIterators, typename InputIt , typename OutputIt , typename StencilTransformer , typename Neighbourhood , requires_iterators< InputIterators... > = 0, requires_iterator< InputIt > = 0, requires_iterator< OutputIt > = 0>
void grppi::stencil ( const Execution &  ex,
std::tuple< InputIterators... >  firsts,
InputIt  last,
OutputIt  out,
StencilTransformer &&  transform_op,
Neighbourhood &&  neighbour_op 
)

Invoke Stencil pattern on a data sequence with sequential execution.

Template Parameters
ExecutionExecution type.
InputIteratorsIterators types used for the input sequences.
InputItIterator type used for the input sequence.
OutputItIterator type used for the output sequence
StencilTransformerCallable type for performing the stencil transformation.
NeighbourhoodCallable type for obtaining the neighbourhood.
Parameters
exExecution policy object.
firstsTuple of iterator to the first elements of the input sequences.
lastIterator to one past the end of the input sequence.
outIterator to the first element in the output sequence.
transform_opStencil transformation operation.
neighbour_opNeighbourhood operation.

◆ stencil() [4/4]

template<typename Execution , typename ... InputIterators, typename OutputIt , typename StencilTransformer , typename Neighbourhood , requires_iterators< InputIterators... > = 0, requires_iterator< OutputIt > = 0>
void grppi::stencil ( const Execution &  ex,
std::tuple< InputIterators... >  firsts,
std::size_t  size,
OutputIt  out,
StencilTransformer &&  transform_op,
Neighbourhood &&  neighbour_op 
)

Invoke Stencil pattern on a data sequence with sequential execution.

Template Parameters
ExecutionExecution type.
InputIteratorsIterators types used for the input sequences.
OutputItIterator type used for the output sequence
StencilTransformerCallable type for performing the stencil transformation.
NeighbourhoodCallable type for obtaining the neighbourhood.
Parameters
exExecution policy object.
firstsTuple of iterator to the first elements of the input sequences.
sizeSize of the input sequence to be proccess.
outIterator to the first element in the output sequence.
transform_opStencil transformation operation.
neighbour_opNeighbourhood operation.