Arcane  v4.1.10.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
core/matvec/Vector.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/* Vector.h (C) 2000-2026 */
9/* */
10/* Vecteur d'algèbre linéraire. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_CORE_MATVEC_VECTOR_H
13#define ARCANE_CORE_MATVEC_VECTOR_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
17#include "arcane/utils/Array.h"
18#include "arcane/utils/Numeric.h"
19
20/*---------------------------------------------------------------------------*/
21/*---------------------------------------------------------------------------*/
22
23namespace Arcane::MatVec
24{
25
26/*---------------------------------------------------------------------------*/
27/*---------------------------------------------------------------------------*/
28
29class VectorImpl;
30
31/*---------------------------------------------------------------------------*/
32/*---------------------------------------------------------------------------*/
38class ARCANE_CORE_EXPORT Vector
39{
40 public:
41
43 Vector();
49 explicit Vector(Integer size);
55 Vector(Integer size, Real init_value);
63 Vector(const Vector& rhs);
65 const Vector& operator=(const Vector& rhs);
67 ~Vector();
68
69 public:
70
72 Integer size() const;
86 void dump(std::ostream& o) const;
94 void copy(const Vector& rhs);
101 void resize(Integer new_size);
108 void resize(Integer new_size, Real init_value);
109
110 Real normInf();
111
113 static Vector readHypre(const String& file_name);
114
115 private:
116
118 VectorImpl* m_impl = nullptr;
119};
120
121/*---------------------------------------------------------------------------*/
122/*---------------------------------------------------------------------------*/
123
124} // namespace Arcane::MatVec
125
126/*---------------------------------------------------------------------------*/
127/*---------------------------------------------------------------------------*/
128
129#endif
void dump(std::ostream &o) const
Imprime les valeurs du vecteur.
Definition Vector.cc:197
void resize(Integer new_size, Real init_value)
Change le nombre d'éléments du vecteur.
static Vector readHypre(const String &file_name)
Initialise un vecteur en utilisant un fichier au format Hypre.
Definition Vector.cc:231
const Vector & operator=(const Vector &rhs)
Change la référence du vecteur.
Definition Vector.cc:139
Integer size() const
Nombre d'éléments du vecteur.
Definition Vector.cc:161
Vector(Integer size, Real init_value)
Créé pour stocker size éléments.
void resize(Integer new_size)
Change le nombre d'éléments du vecteur.
VectorImpl * m_impl
Représentation interne du groupe.
RealArrayView values()
Valeurs du vecteur.
Definition Vector.cc:170
Vector(RealUniqueArray v)
Créé un vecteur avec les éléments de v.
Vector clone()
Clone ce vecteur.
Vector()
Créé un vecteur vide.
Definition Vector.cc:110
void copy(const Vector &rhs)
Copie les éléments de rhs dans ce vecteur.
Definition Vector.cc:188
Chaîne de caractères unicode.
Int32 Integer
Type représentant un entier.
UniqueArray< Real > RealUniqueArray
Tableau dynamique à une dimension de réels.
Definition UtilsTypes.h:349
double Real
Type représentant un réel.
ArrayView< Real > RealArrayView
Equivalent C d'un tableau à une dimension de réels.
Definition UtilsTypes.h:459
ConstArrayView< Real > RealConstArrayView
Equivalent C d'un tableau à une dimension de réels.
Definition UtilsTypes.h:488