12#ifndef ARCANE_IMPL_DATAOPERATION_H
13#define ARCANE_IMPL_DATAOPERATION_H
17#include "arccore/base/ArrayView.h"
18#include "arccore/base/Span.h"
20#include "arcane/utils/Real2.h"
21#include "arcane/utils/Real3.h"
22#include "arcane/utils/Real2x2.h"
23#include "arcane/utils/Real3x3.h"
24#include "arcane/utils/Float16.h"
25#include "arcane/utils/BFloat16.h"
27#include "arcane/datatype/IDataOperation.h"
29#include "arcane/Parallel.h"
40template<
typename DataOperator>
47 DataOperationT(
const DataOperator& op) : m_operator(op) {}
51 template<
typename DataType>
void
54 for(
Int32 i=0, n=input.
size(); i<n; ++i )
55 output[i] = m_operator(output[i],input[i]);
62 _applyView(output,input);
66 _applyView(output,input);
70 _applyView(output,input);
74 _applyView(output,input);
78 _applyView(output,input);
82 _applyView(output,input);
86 _applyView(output,input);
90 _applyView(output,input);
94 _applyView(output,input);
98 _applyView(output,input);
102 _applyView(output,input);
106 _applyView(output,input);
110 _applyView(output,input);
115 template<
typename DataType>
void
118 for(
Int64 i=0, n=input.
size(); i<n; ++i )
119 output[i] = m_operator(output[i],input[i]);
126 _applySpan(output,input);
130 _applySpan(output,input);
134 _applySpan(output,input);
138 _applySpan(output,input);
142 _applySpan(output,input);
146 _applySpan(output,input);
150 _applySpan(output,input);
154 _applySpan(output,input);
158 _applySpan(output,input);
162 _applySpan(output,input);
166 _applySpan(output,input);
170 _applySpan(output,input);
174 _applySpan(output,input);
179 DataOperator m_operator;
Vue modifiable d'un tableau d'un type T.
Vue constante d'un tableau de type T.
constexpr Integer size() const noexcept
Nombre d'éléments du tableau.
Interface d'une opération sur une donnée.
constexpr __host__ __device__ SizeType size() const noexcept
Retourne la taille du tableau.
Vue d'un tableau d'éléments de type T.
eReduceType
Types des réductions supportées.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
ArrayView< Int64 > Int64ArrayView
Equivalent C d'un tableau à une dimension d'entiers 64 bits.
ConstArrayView< Real3 > Real3ConstArrayView
Equivalent C d'un tableau à une dimension de Real3.
ArrayView< Real2x2 > Real2x2ArrayView
Equivalent C d'un tableau à une dimension de Real2x2.
ArrayView< Byte > ByteArrayView
Equivalent C d'un tableau à une dimension de caractères.
std::int64_t Int64
Type entier signé sur 64 bits.
ArrayView< Real3 > Real3ArrayView
Equivalent C d'un tableau à une dimension de Real3.
ArrayView< Int16 > Int16ArrayView
Equivalent C d'un tableau à une dimension d'entiers 16 bits.
ConstArrayView< Int32 > Int32ConstArrayView
Equivalent C d'un tableau à une dimension d'entiers 32 bits.
ArrayView< Real3x3 > Real3x3ArrayView
Equivalent C d'un tableau à une dimension de Real3x3.
ConstArrayView< Int16 > Int16ConstArrayView
Equivalent C d'un tableau à une dimension d'entiers 16 bits.
ConstArrayView< Int64 > Int64ConstArrayView
Equivalent C d'un tableau à une dimension d'entiers 64 bits.
ArrayView< Int32 > Int32ArrayView
Equivalent C d'un tableau à une dimension d'entiers 32 bits.
ConstArrayView< Byte > ByteConstArrayView
Equivalent C d'un tableau à une dimension de caractères.
ConstArrayView< Real2 > Real2ConstArrayView
Equivalent C d'un tableau à une dimension de Real2.
ArrayView< Real2 > Real2ArrayView
Equivalent C d'un tableau à une dimension de Real2.
ArrayView< Real > RealArrayView
Equivalent C d'un tableau à une dimension de réels.
ConstArrayView< Real3x3 > Real3x3ConstArrayView
Equivalent C d'un tableau à une dimension de Real3x3.
ConstArrayView< Real2x2 > Real2x2ConstArrayView
Equivalent C d'un tableau à une dimension de Real2x2.
std::int32_t Int32
Type entier signé sur 32 bits.
ConstArrayView< Real > RealConstArrayView
Equivalent C d'un tableau à une dimension de réels.