44#ifndef NIMBLE_QUANTA_H
45#define NIMBLE_QUANTA_H
54typename std::remove_reference<T>::type&
60template <class list_t>
65template <class list_t>
68template <class F, class... Args>
71template <class F, class... list_t>
76len(T&& obj) -> decltype(obj.size())
81template <
class list_t>
87 template <
class int_t>
101 template <
class int_t>
123template <
class int_t =
int>
158template <
class int_t>
159invoke_counter_t<int_t>
165template <
class list_t,
class F>
169 for (
auto& elem : list) { elem = func(elem); }
Definition nimble.quanta.h:125
auto operator()() const -> decltype(count++)
Definition nimble.quanta.h:148
invoke_counter_t & operator=(const invoke_counter_t &)=default
auto increment() const -> decltype(count++)
Definition nimble.quanta.h:153
void reset(const int_t &value=0)
Definition nimble.quanta.h:138
invoke_counter_t(const invoke_counter_t &)=default
int_t & get_count() const
Definition nimble.quanta.h:143
invoke_counter_t(invoke_counter_t &&)=default
invoke_counter_t()
Definition nimble.quanta.h:129
invoke_counter_t(int_t i)
Definition nimble.quanta.h:130
invoke_counter_t & operator=(invoke_counter_t &&)=default
Definition nimble.quanta.arrayview.h:53
void remap(list_t &list, F &&func)
Definition nimble.quanta.h:167
decltype(*std::begin(declref< list_t >())) iterated_t
Definition nimble.quanta.h:61
T declval_exact() noexcept
indexer_t< T > make_indexer(T &list)
Definition nimble.quanta.h:111
return_t< F, iterated_t< list_t >... > transformed_iterated_t
Definition nimble.quanta.h:72
std::remove_reference< T >::type & declref() noexcept
typename std::decay< iterated_t< list_t > >::type elem_t
Definition nimble.quanta.h:66
decltype(declref< F >()(declval_exact< Args >()...)) return_t
Definition nimble.quanta.h:69
invoke_counter_t< int_t > make_counter(int_t initial=0)
Definition nimble.quanta.h:160
auto len(T &&obj) -> decltype(obj.size())
Definition nimble.quanta.h:76
Definition kokkos_contact_manager.h:49
T & operator()(int_t &&index) const
Definition nimble.quanta.h:103
constexpr indexer_t(T *const ptr)
Definition nimble.quanta.h:99
T *const ptr
Definition nimble.quanta.h:98
indexer_t(const indexer_t &)=default
Definition nimble.quanta.h:83
constexpr indexer_t(list_t &list)
Definition nimble.quanta.h:85
constexpr indexer_t(const indexer_t &)=default
auto operator()(int_t &&index) const -> decltype(list[index])
Definition nimble.quanta.h:89
list_t & list
Definition nimble.quanta.h:84