Example illustrating several variants of the construction of a dash::Array
.
#include <unistd.h>
#include <iostream>
#include <libdash.h>
#include <algorithm>
int main(int argc, char* argv[])
{
typedef int value_t;
typedef typename pattern_t::index_type index_t;
static const size_t NUM_ELEM_PER_UNIT = 10;
pattern_t pat(NUM_ELEM_PER_UNIT *
size);
for (
auto i = 0; i < arr1.
size(); i++) {
arr1[i] = i;
arr2[i] = i;
arr3[i] = i;
arr4[i] = i;
arr5[i] = i;
}
}
for (
auto i = 0; i < arr1.
size(); i++) {
assert(i == arr1[i]);
assert(static_cast<value_t>(arr1[i]) == static_cast<value_t>(arr2[i]));
assert(static_cast<value_t>(arr1[i]) == static_cast<value_t>(arr3[i]));
assert(static_cast<value_t>(arr1[i]) == static_cast<value_t>(arr4[i]));
assert(static_cast<value_t>(arr1[i]) == static_cast<value_t>(arr5[i]));
}
for (auto el: arr1) {
cout << static_cast<value_t>(el)
<< " ";
}
cout << endl;
}
}