Arcane  4.1.12.0
User 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
33/*!
34 * \internal
35 * \brief Interface of an operation on a data.
36 */
38{
39 public:
40
41 virtual ~IDataOperation() {} //!< Frees resources
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.
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