24 #ifndef ARM_COMPUTE_TEST_DATASET_JOIN 25 #define ARM_COMPUTE_TEST_DATASET_JOIN 46 template <
typename T,
typename U>
50 using T_noref =
typename std::remove_reference<T>::type;
51 using U_noref =
typename std::remove_reference<U>::type;
52 using iter1_type =
typename T_noref::iterator;
53 using iter2_type =
typename U_noref::iterator;
62 : _dataset1{ std::forward<T>(dataset1) },
63 _dataset2{ std::forward<U>(dataset2) }
71 using type =
typename T_noref::type;
81 iterator(
const T_noref *dataset1,
const U_noref *dataset2)
82 : _iter1{ dataset1->begin() }, _iter2{ dataset2->begin() }, _first_size{ dataset1->size() }
92 return _first_size > 0 ? _iter1.description() : _iter2.description();
101 return _first_size > 0 ? *_iter1 : *_iter2;
135 return iterator(&_dataset1, &_dataset2);
144 return _dataset1.size() + _dataset2.size();
159 template <
typename T,
typename U>
int size() const
Size of the dataset.
Iterator for the dataset.
iterator begin() const
Iterator pointing at the begin of the dataset.
std::string description() const
Get the description of the current value.
JoinDataset(T &&dataset1, U &&dataset2)
Construct dataset from the given datasets.
iterator(const T_noref *dataset1, const U_noref *dataset2)
Construct an iterator.
This file contains all available output stages for GEMMLowp on OpenCL.
typename T_noref::type type
Type of the dataset.
Abstract dataset base class.
Implementation of a dataset representing the concatenation of the input datasets. ...
JoinDataset::type operator*() const
Get the value of the iterator.
JoinDataset< T, U > concat(T &&dataset1, U &&dataset2)
Helper function to create a JoinDataset.
iterator & operator++()
Inrement the iterator.