Hydra: multivector.h File Reference (original) (raw)

#include <hydra/detail/Config.h>
#include <hydra/detail/BackendPolicy.h>
#include <hydra/detail/utility/Utility_Tuple.h>
#include <hydra/detail/functors/Caster.h>
#include <hydra/Tuple.h>
#include <hydra/Range.h>
#include <hydra/Placeholders.h>
#include <hydra/detail/Iterable_traits.h>
#include <hydra/detail/IteratorTraits.h>
#include <hydra/detail/ZipIteratorUtility.h>
#include <hydra/detail/TupleTraits.h>
#include <hydra/detail/external/hydra_thrust/iterator/zip_iterator.h>
#include <hydra/detail/external/hydra_thrust/iterator/iterator_traits.h>
#include <hydra/detail/external/hydra_thrust/tuple.h>
#include <hydra/detail/external/hydra_thrust/logical.h>
#include <hydra/detail/external/hydra_thrust/functional.h>
#include <hydra/detail/external/hydra_thrust/detail/type_traits.h>
#include <hydra/detail/external/hydra_thrust/iterator/transform_iterator.h>
#include <array>

Go to the source code of this file.

Data Structures
class hydra::multivector< T, BACKEND >
class hydra::multivector< hydra::thrust::tuple< T... >, hydra::detail::BackendPolicy< BACKEND > >
This class implements storage in SoA layouts for table where all elements have the same type. More...
Namespaces
Functions
template<unsigned int I, hydra::detail::Backend BACKEND, typename ... T>
auto hydra::begin (multivector< hydra::thrust::tuple< T... >, detail::BackendPolicy< BACKEND >> const &other) -> decltype(other.begin(placeholders::placeholder< I >
template<unsigned int I, hydra::detail::Backend BACKEND, typename ... T>
auto hydra::begin (multivector< hydra::thrust::tuple< T... >, detail::BackendPolicy< BACKEND >> &other) -> decltype(other.begin(placeholders::placeholder< I >
template<hydra::detail::Backend BACKEND, typename ... T, unsigned int... I>
auto hydra::columns (multivector< hydra::thrust::tuple< T... >, hydra::detail::BackendPolicy< BACKEND >>const &other, placeholders::placeholder< I >...cls) -> Range< decltype(std::declval< multivector< hydra::thrust::tuple< T... >, hydra::detail::BackendPolicy< BACKEND >> const &>().begin(placeholders::placeholder< I >
template<hydra::detail::Backend BACKEND, typename ... T, unsigned int... I>
auto hydra::columns (multivector< hydra::thrust::tuple< T... >, hydra::detail::BackendPolicy< BACKEND >> &other, placeholders::placeholder< I >...cls) -> Range< decltype(std::declval< multivector< hydra::thrust::tuple< T... >, hydra::detail::BackendPolicy< BACKEND >> &>().begin(placeholders::placeholder< I >
template<typename Type , hydra::detail::Backend BACKEND, typename ... T>
auto hydra::columns (multivector< hydra::thrust::tuple< T... >, hydra::detail::BackendPolicy< BACKEND >> &other) -> Range< decltype(std::declval< multivector< hydra::thrust::tuple< T... >, hydra::detail::BackendPolicy< BACKEND >> &>().begin(placeholders::placeholder< detail::index_in_tuple< Type, hydra::thrust::tuple< T... > >::value >
template<unsigned int I, hydra::detail::Backend BACKEND, typename ... T>
auto hydra::end (multivector< hydra::thrust::tuple< T... >, detail::BackendPolicy< BACKEND >> const &other) -> decltype(other.end(placeholders::placeholder< I >
template<unsigned int I, hydra::detail::Backend BACKEND, typename ... T>
auto hydra::end (multivector< hydra::thrust::tuple< T... >, detail::BackendPolicy< BACKEND >> &other) -> decltype(other.end(placeholders::placeholder< I >
template<unsigned int I, hydra::detail::Backend BACKEND, typename ... T>
auto hydra::get (multivector< hydra::thrust::tuple< T... >, detail::BackendPolicy< BACKEND >> const &other) -> decltype(other.column(placeholders::placeholder< I >
template<hydra::detail::Backend BACKEND, typename ... T, typename ... U>
hydra::Range< hydra::thrust::zip_iterator< typename detail::tuple_cat_type< typename multivector< hydra::thrust::tuple< T... >, detail::BackendPolicy< BACKEND > >::iterator_tuple, typename multivector< hydra::thrust::tuple< U... >, detail::BackendPolicy< BACKEND > >::iterator_tuple >::type > > hydra::meld (multivector< hydra::thrust::tuple< T... >, detail::BackendPolicy< BACKEND >> &left, multivector< hydra::thrust::tuple< U... >, detail::BackendPolicy< BACKEND >> &right)
template<typename ... T, hydra::detail::Backend BACKEND1, hydra::detail::Backend BACKEND2>
bool hydra::operator!= (const multivector< hydra::thrust::tuple< T... >, hydra::detail::BackendPolicy< BACKEND1 >> &lhs, const multivector< hydra::thrust::tuple< T... >, hydra::detail::BackendPolicy< BACKEND2 >> &rhs)
template<typename ... T, hydra::detail::Backend BACKEND1, hydra::detail::Backend BACKEND2>
bool hydra::operator== (const multivector< hydra::thrust::tuple< T... >, hydra::detail::BackendPolicy< BACKEND1 >> &lhs, const multivector< hydra::thrust::tuple< T... >, hydra::detail::BackendPolicy< BACKEND2 >> &rhs)
return hydra::Range< iterator_type > (other.begin(cls...), other.end(cls...))
return hydra::Range< iterator_type > (other.begin(placeholders::placeholder< I >{}), other.end(placeholders::placeholder< I >{}))
template<unsigned int I, hydra::detail::Backend BACKEND, typename ... T>
auto hydra::rbegin (multivector< hydra::thrust::tuple< T... >, detail::BackendPolicy< BACKEND >> const &other) -> decltype(other.rbegin(placeholders::placeholder< I >
template<unsigned int I, hydra::detail::Backend BACKEND, typename ... T>
auto hydra::rbegin (multivector< hydra::thrust::tuple< T... >, detail::BackendPolicy< BACKEND >> &other) -> decltype(other.rbegin(placeholders::placeholder< I >
template<unsigned int I, hydra::detail::Backend BACKEND, typename ... T>
auto hydra::rend (multivector< hydra::thrust::tuple< T... >, detail::BackendPolicy< BACKEND >> const &other) -> decltype(other.rend(placeholders::placeholder< I >
template<unsigned int I, hydra::detail::Backend BACKEND, typename ... T>
auto hydra::rend (multivector< hydra::thrust::tuple< T... >, detail::BackendPolicy< BACKEND >> &other) -> decltype(other.rend(placeholders::placeholder< I >