OpenKalman
|
Element-wise n-ary operation function. More...
Go to the source code of this file.
Namespaces | |
OpenKalman | |
The root namespace for OpenKalman. | |
OpenKalman::detail | |
T is an acceptable noise perturbation input to a tests. | |
Functions | |
template<std::size_t... ixs, typename DTup , typename... Args> | |
constexpr void | OpenKalman::detail::check_n_ary_dims (std::index_sequence< ixs... >, const DTup &d_tup, const Args &...args) |
template<typename Op , typename... Args, std::size_t... I> | |
constexpr bool | OpenKalman::detail::is_invocable_with_indices (std::index_sequence< I... >) |
template<typename Op , std::size_t... I, typename... Args> | |
decltype(auto) constexpr | OpenKalman::detail::n_ary_invoke_op (const Op &op, std::index_sequence< I... > seq, Args &&...args) |
template<typename Arg , std::size_t... I, typename... J> | |
auto | OpenKalman::detail::n_ary_operation_get_component_impl (Arg &&arg, std::index_sequence< I... >, J...j) |
template<typename Op , typename ArgsTup , std::size_t... ArgI, typename... J> | |
auto | OpenKalman::detail::n_ary_operation_get_component (const Op &op, ArgsTup &&args_tup, std::index_sequence< ArgI... >, J...j) |
template<typename M , typename Op , typename ArgsTup , typename... J> | |
void | OpenKalman::detail::n_ary_operation_iterate (M &m, const Op &op, ArgsTup &&args_tup, std::index_sequence<>, J...j) |
template<typename M , typename Op , typename ArgsTup , std::size_t I, std::size_t... Is, typename... J> | |
void | OpenKalman::detail::n_ary_operation_iterate (M &m, const Op &op, ArgsTup &&args_tup, std::index_sequence< I, Is... >, J...j) |
template<typename... Ds, typename Operation , typename... Args, std::enable_if_t<(coordinates::pattern< Ds > and ...) and(indexible< Args > and ...) and(sizeof...(Args) > 0> | |
constexpr auto | OpenKalman::n_ary_operation (const std::tuple< Ds... > &d_tup, Operation &&operation, Args &&...args) |
Perform a component-wise n-ary operation, using broadcasting to match the size of a pattern matrix. More... | |
template<std::size_t ix, typename Arg , typename... Args> | |
constexpr auto | OpenKalman::detail::find_max_dim (const Arg &arg, const Args &...args) |
template<std::size_t... ixs, typename... Args> | |
constexpr auto | OpenKalman::detail::find_max_dims (std::index_sequence< ixs... >, const Args &...args) |
template<typename Operation , typename... Args, std::enable_if_t<(indexible< Args > and ...) and(sizeof...(Args) > 0> | |
constexpr auto | OpenKalman::n_ary_operation (Operation &&operation, Args &&...args) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More... | |
template<typename M , typename Operation , typename Vs_tuple , typename Index_seq , typename K_seq , typename... Is> | |
void | OpenKalman::detail::nullary_set_components (M &m, const Operation &op, const Vs_tuple &, Index_seq, K_seq, Is...is) |
template<std::size_t DsIndex, std::size_t... DsIndices, typename M , typename Operation , typename Vs_tuple , std::size_t... indices, std::size_t... Ks, typename... Is> | |
void | OpenKalman::detail::nullary_set_components (M &m, const Operation &op, const Vs_tuple &ds_tup, std::index_sequence< indices... > index_seq, std::index_sequence< Ks... > k_seq, Is...is) |
template<std::size_t CurrentOpIndex, std::size_t factor, typename M , typename Operations_tuple , typename Vs_tuple , typename UniqueIndicesSeq , std::size_t... AllDsIndices, typename K_seq > | |
void | OpenKalman::detail::nullary_iterate (M &m, const Operations_tuple &op_tup, const Vs_tuple &ds_tup, UniqueIndicesSeq unique_indices_seq, std::index_sequence< AllDsIndices... >, K_seq k_seq) |
template<std::size_t CurrentOpIndex, std::size_t factor, std::size_t index, std::size_t... indices, typename M , typename Operations_tuple , typename Vs_tuple , typename UniqueIndicesSeq , typename AllDsSeq , std::size_t... Ks, std::size_t... Js, typename... J_seqs> | |
void | OpenKalman::detail::nullary_iterate (M &m, const Operations_tuple &op_tup, const Vs_tuple &ds_tup, UniqueIndicesSeq unique_indices_seq, AllDsSeq all_ds_seq, std::index_sequence< Ks... >, std::index_sequence< Js... >, J_seqs...j_seqs) |
template<typename PatternMatrix , std::size_t... indices, typename... Ds, typename... Operations> | |
constexpr auto | OpenKalman::n_ary_operation (const std::tuple< Ds... > &d_tup, const Operations &...operations) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More... | |
template<typename PatternMatrix , std::size_t... indices, typename... Ds, typename... Operations, std::enable_if_t< indexible< PatternMatrix > and(coordinates::pattern< Ds > and ...) and((fixed_pattern< typename vector_space_descriptor_of< PatternMatrix, indices >::type >) and ...) and(sizeof...(Operations)==(1 *... *index_dimension_of< PatternMatrix, indices >::value)), int > = 0> | |
constexpr auto | OpenKalman::n_ary_operation (const Operations &...operations) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More... | |
template<typename Operation , typename Elem , typename... J> | |
void | OpenKalman::detail::do_elem_operation_in_place_impl (const Operation &operation, Elem &elem, J...j) |
template<typename Operation , typename Arg , typename... J> | |
void | OpenKalman::detail::do_elem_operation_in_place (const Operation &operation, Arg &arg, J...j) |
template<typename Operation , typename Arg , typename Count , typename... J> | |
void | OpenKalman::detail::unary_operation_in_place_impl (const Operation &operation, Arg &arg, const Count &count, J...j) |
template<typename Operation , typename Arg , std::enable_if_t< writable< Arg > and detail::n_ary_operator< Operation, index_count_v< Arg >, Arg >, int > = 0> | |
decltype(auto) constexpr | OpenKalman::unary_operation_in_place (const Operation &operation, Arg &&arg) |
Perform a component-wise, in-place unary operation. More... | |
Variables | |
template<typename Op , std::size_t Indices, typename... Args> | |
constexpr bool | OpenKalman::detail::n_ary_operator = n_ary_operator_impl<Op, Indices, void, Args...>::value |
Element-wise n-ary operation function.