KUMI v4.0.0
Flawless Fluorite
Loading...
Searching...
No Matches
Helper Types and function

Utilities to manipulate functions and types in a functional way. More...

Classes

struct  kumi::function::adjacent_unicity_t
 Logic provider to compute the index map associated to the adjactent unicity operation. More...
class  kumi::function::boolean_and
 A type representing the logical and monoid and it's associated identity. The identity of the boolean_and is true. More...
class  kumi::function::boolean_or
 A type representing the logical or monoid and it's associated identity. The identity of boolean_or is false. More...
class  kumi::function::boolean_xor
 A type representing the logical xor monoid and it's associated identity. The identity of boolean_xor is false. More...
struct  kumi::function::cartesian_product_t
 Logic provider to compute the index map associated to the cartesian product operation. More...
struct  kumi::function::cat_t
 Logic provider to compute the index map associated to the concatenation operation. More...
struct  kumi::function::element_or< I, T, U >
 If T is a kumi::product_type and I is within it's size, returns element_t<I,T>, returns U otherwise. More...
class  kumi::function::foldable< T >
 Functional wrapper for values to facilitate pipelined transformations. More...
class  kumi::function::numeric_add
 A type representing the addition monoid with it's associated identity. The identity of the addition is 0. More...
class  kumi::function::numeric_prod
 A type representing the multiplication monoid with it's associated identity. The identity of the multiplication is 1. More...
struct  kumi::function::reduce_t
 Logic provider to compute the index map associated to the reduction operation. More...
struct  kumi::function::rotate_t
 Logic provider to compute the index map associated to the rotation operation. More...
class  kumi::function::scannable< F, V >
 Functional wrapper that accumulates state during a transformation chain. More...
struct  kumi::function::select_t
 Logic provider to compute the index map associated to the adjactent unicity operation. More...
struct  kumi::function::size_or< T, V >
 If T is a kumi::product_type, returns its number of elements otherwise returns V;. More...
struct  kumi::function::split_t
 Logic provider to compute the index map associated to the split operation. More...
struct  kumi::function::tile_t
 Logic provider to compute the index map associated to the tiling operation. More...
struct  kumi::function::unique_t
 Logic provider to compute the index map associated to the adjactent unicity operation. More...
struct  kumi::function::zip_t
 Logic provider to compute the index map associated to the zip operation. More...

Functions

template<typename C, typename... Ts>
requires (std::is_move_constructible_v<std::decay_t<C>> && (std::is_move_constructible_v<std::decay_t<Ts>> && ...))
constexpr auto kumi::bind_back (C &&c, Ts &&... ts) noexcept(std::is_nothrow_move_constructible_v< std::decay_t< C > > &&(std::is_nothrow_move_constructible_v< std::decay_t< Ts > > &&...))
 Binds a certain amount of values into a callable reducing it's arity.
template<typename C, typename... Ts>
requires (std::is_move_constructible_v<std::decay_t<C>> && (std::is_move_constructible_v<std::decay_t<Ts>> && ...))
constexpr auto kumi::bind_front (C &&c, Ts &&... ts) noexcept(std::is_nothrow_move_constructible_v< std::decay_t< C > > &&(std::is_nothrow_move_constructible_v< std::decay_t< Ts > > &&...))
 Binds a certain amount of values into a callable reducing it's arity.
template<std::size_t I, typename T, typename V>
constexpr decltype(auto) kumi::function::get_or (T &&t, V &&v)
 If T is a kumi::product_type, returns it's Ith element, returns an instance of V otherwise.
template<typename C, typename... Ts>
requires (std::is_invocable_v<C, Ts...>)
constexpr decltype(auto) kumi::invoke (C &&c, Ts &&... ts) noexcept(std::is_nothrow_invocable_v< C, Ts... >)
 Invoke the Callable object c with a pack of arguments.
template<typename R, typename C, typename... Ts>
requires (std::is_invocable_r_v<R, C, Ts...>)
constexpr R kumi::invoke_r (C &&c, Ts &&... ts) noexcept(std::is_nothrow_invocable_r_v< R, C, Ts... >)
 Invoke the Callable object c with a pack of arguments with return type R.

Variables

constexpr boolean_and kumi::function::bit_and {}
 Forms a binary monoid callable that can be used in kumi::algoritm. It represents the logical and operation.
constexpr boolean_or kumi::function::bit_or {}
 Forms a binary monoid callable that can be used in kumi::algoritm. It represents the logical or operation.
constexpr boolean_xor kumi::function::bit_xor {}
 Forms a binary monoid callable that can be used in kumi::algoritm. It represents the logical xor operation.
constexpr cartesian_product_t kumi::function::cartesian_producer {}
 Callable object computing the index map associated to the cartesian product operation.
constexpr cat_t kumi::function::concatenater {}
 Callable object computing the index map associated to the concatenation operation.
constexpr numeric_prod kumi::function::multiplies {}
 Forms a binary monoid callable that can be used in kumi::algoritm. It represents the multiplication.
constexpr numeric_add kumi::function::plus {}
 Forms a binary monoid callable that can be used in kumi::algoritm. It represents the addition.
constexpr reduce_t kumi::function::reducer {}
 Callable object computing the index map associated to the reduction operation.
constexpr rotate_t kumi::function::rotater {}
 Callable object computing the index map associated to the rotation operation.
constexpr select_t kumi::function::selector {}
 Callable object computing the index map associated to the selection operation.
constexpr split_t kumi::function::splitter {}
 Callable object computing the index map associated to the split operation.
constexpr tile_t kumi::function::tiler {}
 Callable object computing the index map associated to the tiling operation.
constexpr adjacent_unicity_t kumi::function::uniqued {}
 Callable object computing the index map associated to the adjactent unicity operation.
constexpr unique_t kumi::function::uniquer {}
 Callable object computing the index map associated to the deduplication operation.
constexpr zip_t kumi::function::zipper {}
 Callable object computing the index map associated to the zip operation.