59template<
typename R,
typename...
Args>
63 static constexpr std::size_t
ArgCount =
sizeof...(Args);
73 std::array<FirstArg,ArgCount>,
76 template <std::
size_t N>
79 typename std::tuple_element<N, ArgTypes>::type
85 template<
size_t...
Is>
126template<
typename R,
typename...
Args>
134 static constexpr auto ArgCount = base::ArgCount;
140template<
typename R,
typename Arg,
size_t ArgCount,
141 typename Indices = std::make_index_sequence<ArgCount> >
144 template <std::
size_t N>
147 template<
size_t ...Is>
156template<
typename R,
typename Arg,
size_t ArgCount>
168template<
typename R,
typename Arg,
size_t MaxArgCount>
171 template <std::
size_t N>
173 static constexpr size_t Min = 2;
175 static constexpr auto Indices = std::make_index_sequence<Max>();
177 template<
size_t ...Is>
186template<
typename R,
typename Arg,
size_t MaxArgCount>
290 Signature<TimeSeriesf(TimeSeriesf,TimeSeriesf)>,
291 Signature<TimeSeriesi(TimeSeriesi,TimeSeriesi)>,
292 Signature<TimeSeriesb(TimeSeriesb,TimeSeriesb)>
366 Signature<ArrayXf(ArrayXf,ArrayXf,ArrayXf)>,
void bind_engine(py::module &m, string name)
TimeSeries< fJet > TimeSeriesfJet
TimeSeries< iJet > TimeSeriesiJet
TimeSeries< bool > TimeSeriesb
TimeSeries convenience typedefs.
TimeSeries< float > TimeSeriesf
TimeSeries< bJet > TimeSeriesbJet
TimeSeries< int > TimeSeriesi
< nsga2 selection operator for getting the front
Eigen::Array< bool, Eigen::Dynamic, 1 > ArrayXb
Eigen::Array< int, Eigen::Dynamic, Eigen::Dynamic > ArrayXXi
Eigen::Array< bJet, Eigen::Dynamic, Eigen::Dynamic > ArrayXXbJet
auto Is(NodeType nt) -> bool
typename NarySignature< R, Arg, ArgCount >::type NarySignature_t
static constexpr size_t MAX_ARGS
typename Jetify< T >::type Jetify_t
typename UnJetify< T >::type UnJetify_t
Eigen::Array< bool, Eigen::Dynamic, Eigen::Dynamic > ArrayXXb
typename NarySignatures< R, Arg, MaxArgCount >::type NarySignatures_t
Eigen::Array< fJet, Eigen::Dynamic, 1 > ArrayXfJet
Eigen::Array< int, Eigen::Dynamic, 1 > ArrayXi
Eigen::Array< bJet, Eigen::Dynamic, 1 > ArrayXbJet
Eigen::Array< fJet, Eigen::Dynamic, Eigen::Dynamic > ArrayXXfJet
Eigen::Array< iJet, Eigen::Dynamic, 1 > ArrayXiJet
Eigen::Array< iJet, Eigen::Dynamic, Eigen::Dynamic > ArrayXXiJet
static constexpr bool is_in_v
Stores time series data and implements operators over it.
static constexpr auto make_signature(std::index_sequence< Is... >)
decltype(make_signature(Indices{})) type
Makes a tuple of signatures with increasing arity up to MaxArgCount.
static constexpr auto make_signatures(std::index_sequence< Is... >)
static constexpr size_t Max
static constexpr auto Indices
decltype(make_signatures(Indices)) type
static constexpr size_t Min
static constexpr auto get_ret_type()
static constexpr auto get_arg_types()
static constexpr auto get_args_type()
static constexpr std::size_t hash()
typename WeightType< R >::type WeightType
static constexpr auto get_arg_types()
conditional_t<(std::is_same_v< FirstArg, Args > &&...), std::array< FirstArg, ArgCount >, std::tuple< Args... > > ArgTypes
ArgTypes is a std::array if the types are shared, otherwise it is a tuple.
static constexpr std::size_t ArgCount
static constexpr std::size_t hash()
std::function< R(Args...)> Function
std::tuple_element_t< 0, std::tuple< Args... > > FirstArg
static constexpr auto get_arg_types(std::index_sequence< Is... >)
static constexpr auto get_args_type()
conditional_t<!is_tuple< ArgTypes >::value, FirstArg, typename std::tuple_element< N, ArgTypes >::type > NthType
static constexpr auto get_ret_type()
static constexpr std::size_t hash_args()
typename WeightType< FirstArg >::type WeightType
static constexpr bool contains()
base::WeightType WeightType
Brush::Signatures< N, enable_if_t< is_in_v< N, NodeType::Abs, NodeType::Acos, NodeType::Asin, NodeType::Atan, NodeType::Cos, NodeType::Cosh, NodeType::Sin, NodeType::Sinh, NodeType::Tan, NodeType::Tanh, NodeType::Ceil, NodeType::Floor, NodeType::Exp, NodeType::Log, NodeType::Logabs, NodeType::Log1p, NodeType::Sqrt, NodeType::Sqrtabs, NodeType::Square, NodeType::Logistic, NodeType::OffsetSum > > >::type decltype(std::tuple_cat(unaryTuple(), naryTuple())) type
Brush::Signatures< N, enable_if_t< is_in_v< N, NodeType::Abs, NodeType::Acos, NodeType::Asin, NodeType::Atan, NodeType::Cos, NodeType::Cosh, NodeType::Sin, NodeType::Sinh, NodeType::Tan, NodeType::Tanh, NodeType::Ceil, NodeType::Floor, NodeType::Exp, NodeType::Log, NodeType::Logabs, NodeType::Log1p, NodeType::Sqrt, NodeType::Sqrtabs, NodeType::Square, NodeType::Logistic, NodeType::OffsetSum > > >::naryTuple NarySignatures_t< ArrayXXf, ArrayXf, MAX_ARGS > naryTuple
Brush::Signatures< N, enable_if_t< is_in_v< N, NodeType::Abs, NodeType::Acos, NodeType::Asin, NodeType::Atan, NodeType::Cos, NodeType::Cosh, NodeType::Sin, NodeType::Sinh, NodeType::Tan, NodeType::Tanh, NodeType::Ceil, NodeType::Floor, NodeType::Exp, NodeType::Log, NodeType::Logabs, NodeType::Log1p, NodeType::Sqrt, NodeType::Sqrtabs, NodeType::Square, NodeType::Logistic, NodeType::OffsetSum > > >::unaryTuple std::tuple< Signature< ArrayXf(ArrayXf)>, Signature< ArrayXXf(ArrayXXf)> > unaryTuple
std::tuple< Signature< ArrayXf(ArrayXf, ArrayXf)>, Signature< ArrayXXf(ArrayXXf, ArrayXXf)> > type
std::tuple< Signature< ArrayXb(ArrayXb, ArrayXb)> > type
std::tuple< Signature< ArrayXi(ArrayXXf)>, Signature< ArrayXi(ArrayXXi)>, Signature< ArrayXi(ArrayXXb)> > type
std::tuple< Signature< TimeSeriesf(TimeSeriesf, TimeSeriesf)>, Signature< TimeSeriesi(TimeSeriesi, TimeSeriesi)>, Signature< TimeSeriesb(TimeSeriesb, TimeSeriesb)> > type
std::tuple< Signature< ArrayXf()>, Signature< ArrayXi()>, Signature< ArrayXb()> > type
std::tuple< Signature< ArrayXf(ArrayXf, ArrayXf)>, Signature< ArrayXi(ArrayXi, ArrayXi)>, Signature< ArrayXb(ArrayXb, ArrayXb)> > type
decltype(std::tuple_cat(unaryTuple(), naryTuple())) type
std::tuple< Signature< ArrayXf(ArrayXXf)>, Signature< ArrayXf(TimeSeriesf)> > unaryTuple
NarySignatures_t< ArrayXf, ArrayXf, MAX_ARGS > naryTuple
std::tuple< Signature< ArrayXf(TimeSeriesf)>, Signature< ArrayXf(TimeSeriesi)>, Signature< ArrayXf(TimeSeriesb)> > type
std::tuple< Signature< ArrayXf()> > type
std::tuple< Signature< ArrayXb(ArrayXb)> > type
std::tuple< Signature< ArrayXXf(ArrayXXf)> > unaryTuple
NarySignatures_t< ArrayXXf, ArrayXf, MAX_ARGS > naryTuple
decltype(std::tuple_cat(unaryTuple(), naryTuple())) type
std::tuple< Signature< ArrayXf(ArrayXf, ArrayXf, ArrayXf)>, Signature< ArrayXf(ArrayXi, ArrayXf, ArrayXf)>, Signature< ArrayXf(ArrayXb, ArrayXf, ArrayXf)>, Signature< ArrayXi(ArrayXf, ArrayXi, ArrayXi)>, Signature< ArrayXi(ArrayXi, ArrayXi, ArrayXi)>, Signature< ArrayXi(ArrayXb, ArrayXi, ArrayXi)>, Signature< ArrayXb(ArrayXf, ArrayXb, ArrayXb)>, Signature< ArrayXb(ArrayXi, ArrayXb, ArrayXb)>, Signature< ArrayXb(ArrayXb, ArrayXb, ArrayXb)> > type
std::conditional_t< is_one_of_v< typename T::Scalar, fJet, iJet, bJet >, fJet, float > type