52 explicit numa_vector(
size_t n,
bool init =
true)
58 for (ptrdiff_t i = begin; i < (begin + size); ++i) {
59 p[i] = math::zero<T>();
65 void resize(
size_t size,
bool init =
true)
75 for (ptrdiff_t i = begin; i < (begin + size); ++i) {
76 p[i] = math::zero<T>();
82 template <
class Vector>
83 numa_vector(
const Vector& other,
84 typename std::enable_if<!std::is_integral<Vector>::value,
int>::type = 0)
89 for (ptrdiff_t i = begin; i < (begin + size); ++i) {
95 template <
class Iterator>
97 : n(std::distance(beg, end))
100 static_assert(std::is_same<std::random_access_iterator_tag,
101 typename std::iterator_traits<Iterator>::iterator_category>::value,
102 "Iterator has to be random access");
105 for (ptrdiff_t i = begin; i < (begin + size); ++i) {
122 const T& operator[](
size_t i)
const
127 T& operator[](
size_t i)
132 const T* data()
const
142 void swap(numa_vector& other)
144 std::swap(n, other.n);
145 std::swap(p, other.p);
void arccoreParallelFor(const ComplexForLoopRanges< RankValue > &loop_ranges, const ForLoopRunInfo &run_info, const LambdaType &lambda_function, const ReducerArgs &... reducer_args)
Applique en concurrence la fonction lambda lambda_function sur l'intervalle d'itération donné par loo...