Alien  1.3.0
Developer documentation
Loading...
Searching...
No Matches
VectorElement.h
Go to the documentation of this file.
1/*
2 * Copyright 2020 IFPEN-CEA
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 *
16 * SPDX-License-Identifier: Apache-2.0
17 */
18
23
24#pragma once
25
26#include <alien/utils/Precomp.h>
27
28#include <arccore/collections/Array2.h>
29
30/*---------------------------------------------------------------------------*/
31/*---------------------------------------------------------------------------*/
32
33namespace Alien
34{
35
36/*---------------------------------------------------------------------------*/
37/*---------------------------------------------------------------------------*/
38
46template <typename T, typename Indexer>
48{
49 public:
56 VectorElementT(Arccore::ArrayView<T> values,
57 Arccore::ConstArrayView<Arccore::Integer> indexes,
58 Arccore::Integer local_offset);
59
64 void operator=(Arccore::ConstArrayView<T> values);
65
70 void operator+=(Arccore::ConstArrayView<T> values);
71
76 void operator-=(Arccore::ConstArrayView<T> values);
77
78 private:
80 Arccore::ArrayView<T>& m_values;
82 Arccore::ConstArrayView<Arccore::Integer> m_indexes;
84 Arccore::Integer m_local_offset;
85};
86
87/*---------------------------------------------------------------------------*/
88/*---------------------------------------------------------------------------*/
89
97template <typename T, typename Indexer>
99{
100 public:
108 MultVectorElementT(Arccore::ArrayView<T> values, T factor,
109 Arccore::ConstArrayView<Arccore::Integer> indexes,
110 Arccore::Integer local_offset);
111
116 void operator=(Arccore::ConstArrayView<T> values);
117
122 void operator+=(Arccore::ConstArrayView<T> values);
123
128 void operator-=(Arccore::ConstArrayView<T> values);
129
130 private:
132 Arccore::ArrayView<T>& m_values;
136 Arccore::ConstArrayView<Arccore::Integer> m_indexes;
138 Arccore::Integer m_local_offset;
139};
140
141/*---------------------------------------------------------------------------*/
142/*---------------------------------------------------------------------------*/
143
151template <typename T, typename Indexer>
153{
154 public:
163 MultVectorElement2T(Arccore::ArrayView<T> values,
164 T factor,
165 Arccore::ConstArray2View<Arccore::Integer> indexes,
166 Arccore::Integer i,
167 Arccore::Integer local_offset);
168
173 void operator=(Arccore::ConstArray2View<T> values);
174
179 void operator+=(Arccore::ConstArray2View<T> values);
180
185 void operator-=(Arccore::ConstArray2View<T> values);
186
187 private:
189 Arccore::ArrayView<T>& m_values;
193 Arccore::ConstArray2View<Arccore::Integer> m_indexes;
195 Arccore::Integer m_i;
197 Arccore::Integer m_local_offset;
198};
199
200/*---------------------------------------------------------------------------*/
201/*---------------------------------------------------------------------------*/
202
203} // namespace Alien
204
205/*---------------------------------------------------------------------------*/
206/*---------------------------------------------------------------------------*/
207
208#include "VectorElementT.h"
209
210/*---------------------------------------------------------------------------*/
211/*---------------------------------------------------------------------------*/
VectorElementT.h.
MultVectorElement2T(Arccore::ArrayView< T > values, T factor, Arccore::ConstArray2View< Arccore::Integer > indexes, Arccore::Integer i, Arccore::Integer local_offset)
Constructor.
void operator+=(Arccore::ConstArray2View< T > values)
Operator plus equal.
void operator-=(Arccore::ConstArray2View< T > values)
Minus equal operator.
Arccore::ArrayView< ValueT > & m_values
Arccore::ConstArray2View< Arccore::Integer > m_indexes
void operator=(Arccore::ConstArray2View< T > values)
Operator equal.
MultVectorElementT(Arccore::ArrayView< T > values, T factor, Arccore::ConstArrayView< Arccore::Integer > indexes, Arccore::Integer local_offset)
Constructor.
void operator+=(Arccore::ConstArrayView< T > values)
Operator plus equal.
void operator-=(Arccore::ConstArrayView< T > values)
Minus equal operator.
void operator=(Arccore::ConstArrayView< T > values)
Operator equal.
Arccore::ConstArrayView< Arccore::Integer > m_indexes
Arccore::ArrayView< ValueT > & m_values
void operator-=(Arccore::ConstArrayView< T > values)
Minus equal operator.
Arccore::ArrayView< ValueT > & m_values
void operator=(Arccore::ConstArrayView< T > values)
Operator equal.
Arccore::ConstArrayView< Arccore::Integer > m_indexes
void operator+=(Arccore::ConstArrayView< T > values)
Plus equal operator.
VectorElementT(Arccore::ArrayView< T > values, Arccore::ConstArrayView< Arccore::Integer > indexes, Arccore::Integer local_offset)
Constructor.
-- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature --
Definition BackEnd.h:17