Arcane  4.1.12.0
Developer documentation
Loading...
Searching...
No Matches
IDataOperation.h
1// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2//-----------------------------------------------------------------------------
3// Copyright 2000-2026 CEA (www.cea.fr) IFPEN (www.ifpenergiesnouvelles.com)
4// See the top-level COPYRIGHT file for details.
5// SPDX-License-Identifier: Apache-2.0
6//-----------------------------------------------------------------------------
7/*---------------------------------------------------------------------------*/
8/* IDataOperation.h (C) 2000-2025 */
9/* */
10/* Interface of an operation on a data. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_CORE_DATATYPE_IDATAOPERATION_H
13#define ARCANE_CORE_DATATYPE_IDATAOPERATION_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
18
19/*---------------------------------------------------------------------------*/
20/*---------------------------------------------------------------------------*/
21
22namespace Arcane
23{
24
25/*---------------------------------------------------------------------------*/
26/*---------------------------------------------------------------------------*/
27
28class IDataOperation;
29
30/*---------------------------------------------------------------------------*/
31/*---------------------------------------------------------------------------*/
32
38{
39 public:
40
41 virtual ~IDataOperation() {}
42
43 public:
44
45 virtual void apply(ByteArrayView output, ByteConstArrayView input) = 0;
46 virtual void apply(RealArrayView output, RealConstArrayView input) = 0;
47 virtual void apply(Int16ArrayView output, Int16ConstArrayView input) = 0;
48 virtual void apply(Int32ArrayView output, Int32ConstArrayView input) = 0;
49 virtual void apply(Int64ArrayView output, Int64ConstArrayView input) = 0;
50 virtual void apply(Real2ArrayView output, Real2ConstArrayView input) = 0;
51 virtual void apply(Real3ArrayView output, Real3ConstArrayView input) = 0;
52 virtual void apply(Real2x2ArrayView output, Real2x2ConstArrayView input) = 0;
53 virtual void apply(Real3x3ArrayView output, Real3x3ConstArrayView input) = 0;
54 virtual void apply(ArrayView<Int8> output, ConstArrayView<Int8> input) = 0;
55 virtual void apply(ArrayView<Float16> output, ConstArrayView<Float16> input) = 0;
56 virtual void apply(ArrayView<BFloat16> output, ConstArrayView<BFloat16> input) = 0;
57 virtual void apply(ArrayView<Float32> output, ConstArrayView<Float32> input) = 0;
58
59 virtual void applySpan(Span<Byte> output, Span<const Byte> input) = 0;
60 virtual void applySpan(Span<Real> output, Span<const Real> input) = 0;
61 virtual void applySpan(Span<Int16> output, Span<const Int16> input) = 0;
62 virtual void applySpan(Span<Int32> output, Span<const Int32> input) = 0;
63 virtual void applySpan(Span<Int64> output, Span<const Int64> input) = 0;
64 virtual void applySpan(Span<Real2> output, Span<const Real2> input) = 0;
65 virtual void applySpan(Span<Real3> output, Span<const Real3> input) = 0;
66 virtual void applySpan(Span<Real2x2> output, Span<const Real2x2> input) = 0;
67 virtual void applySpan(Span<Real3x3> output, Span<const Real3x3> input) = 0;
68 virtual void applySpan(Span<Int8> output, Span<const Int8> input) = 0;
69 virtual void applySpan(Span<Float16> output, Span<const Float16> input) = 0;
70 virtual void applySpan(Span<BFloat16> output, Span<const BFloat16> input) = 0;
71 virtual void applySpan(Span<Float32> output, Span<const Float32> input) = 0;
72};
73
74/*---------------------------------------------------------------------------*/
75/*---------------------------------------------------------------------------*/
76
77} // End namespace Arcane
78
79/*---------------------------------------------------------------------------*/
80/*---------------------------------------------------------------------------*/
81
82#endif
File containing the definitions of data types managed by Arcane.
Modifiable view of an array of type T.
Constant view of an array of type T.
Interface of an operation on a data.
virtual ~IDataOperation()
Frees resources.
View of an array of elements of type T.
Definition Span.h:635
-- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature --
ArrayView< Int64 > Int64ArrayView
C equivalent of a 1D array of 64-bit integers.
Definition UtilsTypes.h:451
ConstArrayView< Real3 > Real3ConstArrayView
C equivalent of a 1D array of Real3.
Definition UtilsTypes.h:496
ArrayView< Real2x2 > Real2x2ArrayView
C equivalent of a 1D array of Real2x2.
Definition UtilsTypes.h:469
ArrayView< Byte > ByteArrayView
C equivalent of a 1D array of characters.
Definition UtilsTypes.h:447
ArrayView< Real3 > Real3ArrayView
C equivalent of a 1D array of Real3.
Definition UtilsTypes.h:467
ArrayView< Int16 > Int16ArrayView
C equivalent of a 1D array of 16-bit integers.
Definition UtilsTypes.h:455
ConstArrayView< Int32 > Int32ConstArrayView
C equivalent of a 1D array of 32-bit integers.
Definition UtilsTypes.h:482
ArrayView< Real3x3 > Real3x3ArrayView
C equivalent of a 1D array of Real3x3.
Definition UtilsTypes.h:471
ConstArrayView< Int16 > Int16ConstArrayView
C equivalent of a 1D array of 16-bit integers.
Definition UtilsTypes.h:484
ConstArrayView< Int64 > Int64ConstArrayView
C equivalent of a 1D array of 64-bit integers.
Definition UtilsTypes.h:480
ArrayView< Int32 > Int32ArrayView
C equivalent of a 1D array of 32-bit integers.
Definition UtilsTypes.h:453
ConstArrayView< Byte > ByteConstArrayView
C equivalent of a 1D array of characters.
Definition UtilsTypes.h:476
ConstArrayView< Real2 > Real2ConstArrayView
C equivalent of a 1D array of Real2.
Definition UtilsTypes.h:494
ArrayView< Real2 > Real2ArrayView
C equivalent of a 1D array of Real2.
Definition UtilsTypes.h:465
ArrayView< Real > RealArrayView
C equivalent of a 1D array of reals.
Definition UtilsTypes.h:459
ConstArrayView< Real3x3 > Real3x3ConstArrayView
C equivalent of a 1D array of Real3x3.
Definition UtilsTypes.h:500
ConstArrayView< Real2x2 > Real2x2ConstArrayView
C equivalent of a 1D array of Real2x2.
Definition UtilsTypes.h:498
ConstArrayView< Real > RealConstArrayView
C equivalent of a 1D array of reals.
Definition UtilsTypes.h:488