sy_helpers_strict.hpp File Reference

Implements strict helper primitives for modeling in the SY MoC. More...

#include <functional>
#include <tuple>
#include "abst_ext.hpp"
#include "sy_process_constructors_strict.hpp"
Include dependency graph for sy_helpers_strict.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

 ForSyDe
 The namespace for ForSyDe.
 
 ForSyDe::SY
 The namespace for synchronous MoC.
 

Functions

template<class T0 , template< class > class OIf, class T1 , template< class > class I1If>
scomb< T0, T1 > * ForSyDe::SY::make_scomb (const std::string &pName, const typename scomb< T0, T1 >::functype &_func, OIf< T0 > &outS, I1If< T1 > &inp1S)
 Helper function to construct a strict comb process. More...
 
template<class T0 , template< class > class OIf, class T1 , template< class > class I1If, class T2 , template< class > class I2If>
scomb2< T0, T1, T2 > * ForSyDe::SY::make_scomb2 (const std::string &pName, const typename scomb2< T0, T1, T2 >::functype &_func, OIf< T0 > &outS, I1If< T1 > &inp1S, I2If< T2 > &inp2S)
 Helper function to construct a strict comb2 process. More...
 
template<class T0 , template< class > class OIf, class T1 , template< class > class I1If, class T2 , template< class > class I2If, class T3 , template< class > class I3If>
scomb3< T0, T1, T2, T3 > * ForSyDe::SY::make_scomb3 (const std::string &pName, const typename scomb3< T0, T1, T2, T3 >::functype &_func, OIf< T0 > &outS, I1If< T1 > &inp1S, I2If< T2 > &inp2S, I3If< T3 > &inp3S)
 Helper function to construct a strict comb3 process. More...
 
template<class T0 , template< class > class OIf, class T1 , template< class > class I1If, class T2 , template< class > class I2If, class T3 , template< class > class I3If, class T4 , template< class > class I4If>
scomb4< T0, T1, T2, T3, T4 > * ForSyDe::SY::make_scomb4 (const std::string &pName, const typename scomb4< T0, T1, T2, T3, T4 >::functype &_func, OIf< T0 > &outS, I1If< T1 > &inp1S, I2If< T2 > &inp2S, I3If< T3 > &inp3S, I4If< T4 > &inp4S)
 Helper function to construct a strict comb4 process. More...
 
template<class T0 , template< class > class OIf, class T1 , template< class > class IIf, std::size_t N>
scombX< T0, T1, N > * ForSyDe::SY::make_scombX (const std::string &pName, const typename scombX< T0, T1, N >::functype &_func, OIf< T0 > &outS, std::array< IIf< T1 >, N > &inpS)
 Helper function to construct a strict combX process. More...
 
template<class T0 , template< class > class OIf, class T1 , template< class > class IIf, std::size_t N>
sdpmap< T0, T1, N > * ForSyDe::SY::make_sdpmap (const std::string &pName, const typename sdpmap< T0, T1, N >::functype &_func, OIf< std::array< T0, N >> &outS, IIf< std::array< T1, N >> &inpS)
 Helper function to construct a strict data parallel comb process. More...
 
template<class T0 , template< class > class OIf, template< class > class IIf, std::size_t N>
sdpreduce< T0, N > * ForSyDe::SY::make_sdpreduce (const std::string &pName, const typename sdpreduce< T0, N >::functype &_func, OIf< T0 > &outS, IIf< std::array< T0, N >> &inpS)
 Helper function to construct a strict reduce process. More...
 
template<class T0 , template< class > class OIf, class T1 , template< class > class IIf, std::size_t N>
sdpscan< T0, T1, N > * ForSyDe::SY::make_sdpscan (const std::string &pName, const typename sdpscan< T0, T1, N >::functype &_func, const T0 &init_res, OIf< std::array< T0, N >> &outS, IIf< std::array< T1, N >> &inpS)
 Helper function to construct a strict data parallel scan process. More...
 
template<typename T , template< class > class IIf, template< class > class OIf>
sdelay< T > * ForSyDe::SY::make_sdelay (const std::string &pName, const T &initval, OIf< T > &outS, IIf< T > &inpS)
 Helper function to construct a strict delay process. More...
 
template<typename T , template< class > class IIf, template< class > class OIf>
sdelayn< T > * ForSyDe::SY::make_sdelayn (const std::string &pName, const T &initval, const unsigned int &n, OIf< T > &outS, IIf< T > &inpS)
 Helper function to construct a strict delayn process. More...
 
template<typename IT , typename ST , typename OT , template< class > class IIf, template< class > class OIf>
smoore< IT, ST, OT > * ForSyDe::SY::make_smoore (const std::string &pName, const typename smoore< IT, ST, OT >::ns_functype &_ns_func, const typename smoore< IT, ST, OT >::od_functype &_od_func, const ST &init_st, OIf< OT > &outS, IIf< IT > &inpS)
 Helper function to construct a moore process. More...
 
template<typename IT , typename ST , typename OT , template< class > class IIf, template< class > class OIf>
smealy< IT, ST, OT > * ForSyDe::SY::make_smealy (const std::string &pName, const typename smealy< IT, ST, OT >::ns_functype &_ns_func, const typename smealy< IT, ST, OT >::od_functype &_od_func, const ST &init_st, OIf< OT > &outS, IIf< IT > &inpS)
 Helper function to construct a strict mealy process. More...
 
template<typename T , template< class > class IIf, template< class > class OIf>
sgroup< T > * ForSyDe::SY::make_sgroup (const std::string &pName, const unsigned long &samples, OIf< std::vector< T >> &outS, IIf< T > &inpS)
 Helper function to construct a strict group process. More...
 
template<class T , template< class > class OIf>
sconstant< T > * ForSyDe::SY::make_sconstant (const std::string &pName, const T &initval, const unsigned long long &take, OIf< T > &outS)
 Helper function to construct a strict constant source process. More...
 
template<class T , template< class > class OIf>
ssource< T > * ForSyDe::SY::make_ssource (const std::string &pName, const typename ssource< T >::functype &_func, const T &initval, const unsigned long long &take, OIf< T > &outS)
 Helper function to construct a strict source process. More...
 
template<class T , template< class > class OIf>
svsource< T > * ForSyDe::SY::make_svsource (const std::string &pName, const std::vector< T > &in_vec, OIf< T > &outS)
 Helper function to construct a strict vector source process. More...
 
template<class T , template< class > class IIf>
ssink< T > * ForSyDe::SY::make_ssink (const std::string &pName, const typename ssink< T >::functype &_func, IIf< T > &inS)
 Helper function to construct a strict sink process. More...
 
template<class T1 , template< class > class I1If, class T2 , template< class > class I2If, template< class > class OIf>
szip< T1, T2 > * ForSyDe::SY::make_szip (const std::string &pName, OIf< std::tuple< T1, T2 >> &outS, I1If< T1 > &inp1S, I2If< T2 > &inp2S)
 Helper function to construct a szip process. More...
 
template<class T1 , std::size_t N, template< class > class OIf>
szipX< T1, N > * ForSyDe::SY::make_szipX (const std::string &pName, OIf< std::array< T1, N >> &outS)
 Helper function to construct a szipX process. More...
 
template<template< class > class IIf, class T1 , template< class > class O1If, class T2 , template< class > class O2If>
sunzip< T1, T2 > * ForSyDe::SY::make_sunzip (const std::string &pName, IIf< std::tuple< T1, T2 >> &inpS, O1If< T1 > &out1S, O2If< T2 > &out2S)
 Helper function to construct a sunzip process. More...
 
template<template< class > class IIf, class T1 , std::size_t N>
unzipX< T1, N > * ForSyDe::SY::make_unzipX (const std::string &pName, IIf< std::array< T1, N >> &inpS)
 Helper function to construct a strict unzipX process. More...
 

Detailed Description

Implements strict helper primitives for modeling in the SY MoC.

This file includes helper functions which facilliate construction of strict processes in the SY MoC