12#ifndef ARCANE_IMPL_DATAOPERATION_H
13#define ARCANE_IMPL_DATAOPERATION_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;
Types et fonctions associés aux classes SpanImpl, SmallSpan and Span.
Types et fonctions associés aux classes ArrayView et ConstArrayView.
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.