#ifndef ALSK_CELERO_EXECUTOR_COMMON_H #define ALSK_CELERO_EXECUTOR_COMMON_H #include #include #include #include #include "../bone/common.h" namespace bench { constexpr auto buildExprFarm() { using namespace alsk::arg; using namespace alsk::edsl; return 20 * eTaskV<1000>; } constexpr auto exprFarm = buildExprFarm(); constexpr auto buildExprFarmSel() { using namespace alsk::arg; using namespace alsk::edsl; return link(link, P<1>)>(eTask) & link)>((50 * link)>(eTaskD)) ->* eSelect)); } constexpr auto exprFarmSel = buildExprFarmSel(); constexpr auto buildExprTwo() { using namespace alsk::arg; using namespace alsk::edsl; constexpr auto farmsel = link)>(1000 * link)>(eTaskD)) ->* eSelect; constexpr auto serial = link(P<0>, P<1>)>(link, P<1>)>(eTask) & farmsel); return link(2 * serial); } constexpr auto exprTwo = buildExprTwo(); constexpr auto buildExprTwoS() { using namespace alsk::arg; using namespace alsk::edsl; constexpr auto farmsel = link(1000 * link)>(eTaskD)) ->* eSelect; constexpr auto itersel = &link)>(2 * farmsel) ->* eSelect; constexpr auto serial = link(P<0>, P<1>)>(link, P<1>)>(eTask) & itersel); constexpr auto loop = &link, P<1>)>(2 * serial); return link(2 * loop); } constexpr auto exprTwoS = buildExprTwoS(); } #endif