This class implements storage in SoA layouts for table where all elements have the same type.
More...
|
| multivector ()=default |
| Default constructor. More...
|
|
| multivector (size_t n) |
| Constructor initializing the multivector with n entries. More...
|
|
| multivector (size_t n, value_type const &value) |
| Constructor initializing the multivector with n copies of value . More...
|
|
template<typename Int , typename = typename hydra::thrust::detail::enable_if<std::is_integral<Int>::value>::type> |
| multivector (hydra::pair< Int, hydra::thrust::tuple< T... > > const &pair) |
| Constructor initializing the multivector with n copies of value . More...
|
|
| multivector (multivector< hydra::thrust::tuple< T... >, detail::BackendPolicy< BACKEND >> const &other) |
| Copy constructor. More...
|
|
| multivector (multivector< hydra::thrust::tuple< T... >, detail::BackendPolicy< BACKEND >> &&other) |
| Move constructor. More...
|
|
template<hydra::detail::Backend BACKEND2> |
| multivector (multivector< hydra::thrust::tuple< T... >, detail::BackendPolicy< BACKEND2 >> const &other) |
| Copy constructor for containers allocated in different backends. More...
|
|
template<typename Iterator > |
| multivector (Iterator first, Iterator last) |
| This constructor builds a multivector from a range. More...
|
|
template<typename Iterable , typename = typename std::enable_if< (detail::is_iterable<Iterable>::value) && !(detail::is_iterator<Iterable>::value) && (std::is_convertible<decltype(*std::declval<Iterable>().begin()), value_type>::value) >::type> |
| multivector (Iterable &&other) |
|
reference | back () |
| This method returns a reference referring to the last element of this vector_dev. More...
|
|
const_reference | back () const |
| This method returns a const reference pointing to the last element of this multivector . More...
|
|
iterator | begin () |
| This method returns an iterator pointing to the beginning of this multivector . More...
|
|
template<typename Functor > |
caster_iterator< Functor > | begin (Functor const &caster) |
|
const_iterator | begin () const |
|
template<unsigned int I1, unsigned int I2, unsigned int ... IN> |
columns_iterator< iterator_tuple, I1, I2, IN... > | begin (placeholders::placeholder< I1 > c1, placeholders::placeholder< I2 > c2, placeholders::placeholder< IN > ...cn) |
|
template<unsigned int I> |
hydra::thrust::tuple_element< I, iterator_tuple >::type | begin (placeholders::placeholder< I >) |
|
template<typename Type > |
hydra::thrust::tuple_element< detail::index_in_tuple< Type, tuple_type >::value, iterator_tuple >::type | begin () |
|
template<unsigned int I1, unsigned int I2, unsigned int ... IN> |
columns_iterator< const_iterator_tuple, I1, I2, IN... > | begin (placeholders::placeholder< I1 > c1, placeholders::placeholder< I2 > c2, placeholders::placeholder< IN > ...cn) const |
|
template<unsigned int I> |
hydra::thrust::tuple_element< I, const_iterator_tuple >::type | begin (placeholders::placeholder< I >) const |
|
size_type | capacity () const |
| Returns the number of elements which have been reserved in this multivector . More...
|
|
const_iterator | cbegin () const |
|
template<unsigned int I1, unsigned int I2, unsigned int ... IN> |
columns_iterator< const_iterator_tuple, I1, I2, IN... > | cbegin (placeholders::placeholder< I1 > c1, placeholders::placeholder< I2 > c2, placeholders::placeholder< IN > ...cn) const |
|
template<unsigned int I> |
hydra::thrust::tuple_element< I, const_iterator_tuple >::type | cbegin (placeholders::placeholder< I >) const |
|
const_iterator | cend () const |
|
template<unsigned int I1, unsigned int I2, unsigned int ... IN> |
columns_iterator< const_iterator_tuple, I1, I2, IN... > | cend (placeholders::placeholder< I1 > c1, placeholders::placeholder< I2 > c2, placeholders::placeholder< IN > ...cn) const |
|
template<unsigned int I> |
hydra::thrust::tuple_element< I, const_iterator_tuple >::type | cend (placeholders::placeholder< I >) const |
|
void | clear () |
| This method resizes this multivector to 0. More...
|
|
template<typename Type > |
hydra::thrust::tuple_element< detail::index_in_tuple< Type, tuple_type >::value, storage_tuple >::type & | column () |
|
template<unsigned int I> |
hydra::thrust::tuple_element< I, storage_tuple >::type & | column (placeholders::placeholder< I >) |
|
template<unsigned int I1, unsigned int I2, unsigned int ... IN> |
hydra::Range< columns_iterator< iterator_tuple, I1, I2, IN... > > | column (placeholders::placeholder< I1 > c1, placeholders::placeholder< I2 > c2, placeholders::placeholder< IN > ...cn) |
|
template<unsigned int I> |
const hydra::thrust::tuple_element< I, storage_tuple >::type & | column (placeholders::placeholder< I >) const |
|
template<unsigned int I1, unsigned int I2, unsigned int ... IN> |
hydra::Range< columns_iterator< const_iterator_tuple, I1, I2, IN... > > | column (placeholders::placeholder< I1 > c1, placeholders::placeholder< I2 > c2, placeholders::placeholder< IN > ...cn) const |
|
const_reverse_iterator | crbegin () const |
|
template<unsigned int I1, unsigned int I2, unsigned int ... IN> |
columns_iterator< const_reverse_iterator_tuple, I1, I2, IN... > | crbegin (placeholders::placeholder< I1 > c1, placeholders::placeholder< I2 > c2, placeholders::placeholder< IN > ...cn) const |
|
template<unsigned int I> |
hydra::thrust::tuple_element< I, const_reverse_iterator_tuple >::type | crbegin (placeholders::placeholder< I >) const |
|
const_reverse_iterator | crend () const |
|
template<unsigned int I1, unsigned int I2, unsigned int ... IN> |
columns_iterator< const_reverse_iterator_tuple, I1, I2, IN... > | crend (placeholders::placeholder< I1 > c1, placeholders::placeholder< I2 > c2, placeholders::placeholder< IN > ...cn) const |
|
template<unsigned int I> |
hydra::thrust::tuple_element< I, const_reverse_iterator_tuple >::type | crend (placeholders::placeholder< I >) const |
|
bool | empty () const |
| This method returns true iff size() == 0. More...
|
|
iterator | end () |
| This method returns a const_iterator pointing to one element past the last of this multivector . More...
|
|
template<typename Functor > |
caster_iterator< Functor > | end (Functor const &caster) |
|
const_iterator | end () const |
|
template<unsigned int I1, unsigned int I2, unsigned int ... IN> |
columns_iterator< iterator_tuple, I1, I2, IN... > | end (placeholders::placeholder< I1 > c1, placeholders::placeholder< I2 > c2, placeholders::placeholder< IN > ...cn) |
|
template<unsigned int I> |
hydra::thrust::tuple_element< I, iterator_tuple >::type | end (placeholders::placeholder< I >) |
|
template<typename Type > |
hydra::thrust::tuple_element< detail::index_in_tuple< Type, tuple_type >::value, iterator_tuple >::type | end () |
|
template<unsigned int I1, unsigned int I2, unsigned int ... IN> |
columns_iterator< const_iterator_tuple, I1, I2, IN... > | end (placeholders::placeholder< I1 > c1, placeholders::placeholder< I2 > c2, placeholders::placeholder< IN > ...cn) const |
|
template<unsigned int I> |
hydra::thrust::tuple_element< I, const_iterator_tuple >::type | end (placeholders::placeholder< I >) const |
|
iterator | erase (iterator pos) |
| This method removes the element at position pos. More...
|
|
iterator | erase (iterator first, iterator last) |
| This method removes the range of elements [first,last) from this multivector . More...
|
|
reference | front () |
| This method returns a const_reference referring to the first element of this multivector . More...
|
|
const_reference | front () const |
| This method returns a reference pointing to the first element of this multivector . More...
|
|
iterator | insert (iterator pos, const value_type &x) |
| This method inserts a single copy of a given exemplar value at the specified position in this multivector . More...
|
|
void | insert (iterator pos, size_type n, const value_type &x) |
| This method inserts a copy of an exemplar value to a range at the specified position in this multivector . More...
|
|
template<typename InputIterator > |
hydra::thrust::detail::enable_if< detail::is_zip_iterator< InputIterator >::value &&std::is_convertible< typename hydra::thrust::iterator_traits< InputIterator >::value_type, value_type >::value, void >::type | insert (iterator pos, InputIterator first, InputIterator last) |
| This method inserts a copy of an input range at the specified position in this multivector . More...
|
|
template<typename ... Iterables> |
auto | meld (Iterables &&...iterables) -> typename std::enable_if< detail::all_true< detail::is_iterable< Iterables >::value... >::value, hydra::Range< decltype(detail::meld_iterators(begin(), std::forward< Iterables >(iterables).begin()...))>>::type |
|
multivector< hydra::thrust::tuple< T... >, detail::BackendPolicy< BACKEND > > & | operator= (multivector< hydra::thrust::tuple< T... >, detail::BackendPolicy< BACKEND >> const &other) |
| Assignment operator. More...
|
|
multivector< hydra::thrust::tuple< T... >, detail::BackendPolicy< BACKEND > > & | operator= (multivector< hydra::thrust::tuple< T... >, detail::BackendPolicy< BACKEND > > &&other) |
| Move-assignment operator. More...
|
|
template<hydra::detail::Backend BACKEND2> |
multivector< hydra::thrust::tuple< T... >, detail::BackendPolicy< BACKEND > > & | operator= (multivector< hydra::thrust::tuple< T... >, detail::BackendPolicy< BACKEND2 > > const &other) |
| Assignment operator. More...
|
|
template<typename Functor > |
caster_iterator< Functor > | operator[] (Functor const &caster) |
|
template<unsigned int I> |
hydra::thrust::tuple_element< I, iterator_tuple >::type | operator[] (placeholders::placeholder< I > index) |
|
template<unsigned int I> |
hydra::thrust::tuple_element< I, const_iterator_tuple >::type | operator[] (placeholders::placeholder< I > index) const |
|
reference | operator[] (size_t n) |
| Subscript access to the data contained in this vector_dev. More...
|
|
const_reference | operator[] (size_t n) const |
| Subscript read access to the data contained in this vector_dev. More...
|
|
void | pop_back () |
| This method erases the last element of this multivector , invalidating all iterators and references to it. More...
|
|
void | push_back (value_type const &value) |
| This method appends the given element to the end of this multivector . More...
|
|
template<typename Functor , typename Obj > |
void | push_back (Functor const &functor, Obj const &obj) |
| This method appends the given element to the end of this multivector . More...
|
|
template<typename Functor > |
caster_reverse_iterator< Functor > | rbegin (Functor const &caster) |
|
reverse_iterator | rbegin () |
|
const_reverse_iterator | rbegin () const |
|
template<unsigned int I1, unsigned int I2, unsigned int ... IN> |
columns_iterator< reverse_iterator_tuple, I1, I2, IN... > | rbegin (placeholders::placeholder< I1 > c1, placeholders::placeholder< I2 > c2, placeholders::placeholder< IN > ...cn) |
|
template<unsigned int I> |
hydra::thrust::tuple_element< I, reverse_iterator_tuple >::type | rbegin (placeholders::placeholder< I >) |
|
template<typename Type > |
hydra::thrust::tuple_element< detail::index_in_tuple< Type, tuple_type >::value, reverse_iterator_tuple >::type | rbegin () |
|
template<unsigned int I1, unsigned int I2, unsigned int ... IN> |
columns_iterator< const_reverse_iterator_tuple, I1, I2, IN... > | rbegin (placeholders::placeholder< I1 > c1, placeholders::placeholder< I2 > c2, placeholders::placeholder< IN > ...cn) const |
|
template<unsigned int I> |
hydra::thrust::tuple_element< I, const_reverse_iterator_tuple >::type | rbegin (placeholders::placeholder< I >) const |
|
template<typename Functor > |
caster_reverse_iterator< Functor > | rend (Functor const &caster) |
|
reverse_iterator | rend () |
|
const_reverse_iterator | rend () const |
|
template<unsigned int I1, unsigned int I2, unsigned int ... IN> |
columns_iterator< reverse_iterator_tuple, I1, I2, IN... > | rend (placeholders::placeholder< I1 > c1, placeholders::placeholder< I2 > c2, placeholders::placeholder< IN > ...cn) |
|
template<unsigned int I> |
hydra::thrust::tuple_element< I, reverse_iterator_tuple >::type | rend (placeholders::placeholder< I >) |
|
template<typename Type > |
hydra::thrust::tuple_element< detail::index_in_tuple< Type, tuple_type >::value, reverse_iterator_tuple >::type | rend () |
|
template<unsigned int I1, unsigned int I2, unsigned int ... IN> |
columns_iterator< const_reverse_iterator_tuple, I1, I2, IN... > | rend (placeholders::placeholder< I1 > c1, placeholders::placeholder< I2 > c2, placeholders::placeholder< IN > ...cn) const |
|
template<unsigned int I> |
hydra::thrust::tuple_element< I, const_reverse_iterator_tuple >::type | rend (placeholders::placeholder< I >) const |
|
void | reserve (size_type size) |
| If n is less than or equal to capacity(), this call has no effect. More...
|
|
void | resize (size_type new_size) |
| Resizes this multivector to the specified number of elements. More...
|
|
void | shrink_to_fit () |
| This method shrinks the capacity of this multivector to exactly fit its elements. More...
|
|
size_type | size () const |
| Returns the number of elements in this multivector . More...
|
|