Hydra  4.0.1
A header-only templated C++ framework to perform data analysis on massively parallel platforms.
multivector.h File Reference
#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>
Include dependency graph for multivector.h:
This graph shows which files directly or indirectly include this file:

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

 hydra
 Generic policies definition.
 

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 >
 

Variables

decltype(other.begin(placeholders::placeholder< I >{})) typedef hydra::iterator_type
 

Data Structure Documentation

◆ hydra::multivector

class hydra::multivector

template<typename T, typename BACKEND>
class hydra::multivector< T, BACKEND >

Examples:
dense_histogram.inl, multidimensional_fit.inl, multivector_container.inl, phsp_chain.inl, pseudo_experiment.inl, range_semantics.inl, and splot.inl.
Inheritance diagram for hydra::multivector< T, BACKEND >:
Collaboration diagram for hydra::multivector< T, BACKEND >: