Arcane  4.2.1.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:633
-- 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:445
ConstArrayView< Real3 > Real3ConstArrayView
C equivalent of a 1D array of Real3.
Definition UtilsTypes.h:490
ArrayView< Real2x2 > Real2x2ArrayView
C equivalent of a 1D array of Real2x2.
Definition UtilsTypes.h:463
ArrayView< Byte > ByteArrayView
C equivalent of a 1D array of characters.
Definition UtilsTypes.h:441
ArrayView< Real3 > Real3ArrayView
C equivalent of a 1D array of Real3.
Definition UtilsTypes.h:461
ArrayView< Int16 > Int16ArrayView
C equivalent of a 1D array of 16-bit integers.
Definition UtilsTypes.h:449
ConstArrayView< Int32 > Int32ConstArrayView
C equivalent of a 1D array of 32-bit integers.
Definition UtilsTypes.h:476
ArrayView< Real3x3 > Real3x3ArrayView
C equivalent of a 1D array of Real3x3.
Definition UtilsTypes.h:465
ConstArrayView< Int16 > Int16ConstArrayView
C equivalent of a 1D array of 16-bit integers.
Definition UtilsTypes.h:478
ConstArrayView< Int64 > Int64ConstArrayView
C equivalent of a 1D array of 64-bit integers.
Definition UtilsTypes.h:474
ArrayView< Int32 > Int32ArrayView
C equivalent of a 1D array of 32-bit integers.
Definition UtilsTypes.h:447
ConstArrayView< Byte > ByteConstArrayView
C equivalent of a 1D array of characters.
Definition UtilsTypes.h:470
ConstArrayView< Real2 > Real2ConstArrayView
C equivalent of a 1D array of Real2.
Definition UtilsTypes.h:488
ArrayView< Real2 > Real2ArrayView
C equivalent of a 1D array of Real2.
Definition UtilsTypes.h:459
ArrayView< Real > RealArrayView
C equivalent of a 1D array of reals.
Definition UtilsTypes.h:453
ConstArrayView< Real3x3 > Real3x3ConstArrayView
C equivalent of a 1D array of Real3x3.
Definition UtilsTypes.h:494
ConstArrayView< Real2x2 > Real2x2ConstArrayView
C equivalent of a 1D array of Real2x2.
Definition UtilsTypes.h:492
ConstArrayView< Real > RealConstArrayView
C equivalent of a 1D array of reals.
Definition UtilsTypes.h:482