14#include "arcane/utils/Array.h"
15#include "arcane/utils/String.h"
16#include "arcane/utils/FatalErrorException.h"
18#include "arcane/core/matvec/Vector.h"
25namespace Arcane::MatVec
41 : m_values(size, init_value)
44 m_values.fill(init_value);
55 VectorImpl(
const VectorImpl& rhs)
56 : m_values(rhs.m_values)
63 void operator=(
const VectorImpl& rhs);
67 Integer size()
const {
return m_values.size(); }
70 void dump(std::ostream& o)
const
73 o <<
"(Vector ptr=" <<
this <<
" size=" << size <<
")\n";
74 for (
Integer i = 0; i < size; ++i)
75 o <<
"[" << i <<
"]=" << m_values[i] <<
'\n';
80 return new VectorImpl(m_values);
82 void copy(
const VectorImpl& rhs)
84 m_values.copy(rhs.m_values);
95 void removeReference()
98 if (m_nb_reference == 0)
155 m_impl->removeReference();
166 m_impl->removeReference();
209dump(std::ostream& o)
const
222 for (
Integer i = 0; i < size; ++i) {
223 Real v2 = math::abs(m_values[i]);
245 std::ifstream ifile(file_name.
localstr());
247 ARCANE_FATAL(
"Can not read Hypre vector file='{0}'", file_name);
250 ifile >> std::ws >> xmin >> std::ws >> xmax;
251 Integer nb = (xmax - xmin) + 1;
254 for (
Integer i = 0; i < nb; ++i) {
257 ifile >> std::ws >> column_id >> std::ws >> v;
#define ARCANE_FATAL(...)
Macro envoyant une exception FatalErrorException.
Integer size() const
Nombre d'éléments du vecteur.
Vecteur d'algèbre linéraire.
void dump(std::ostream &o) const
Imprime les valeurs du vecteur.
static Vector readHypre(const String &file_name)
Initialise un vecteur en utilisant un fichier au format Hypre.
const Vector & operator=(const Vector &rhs)
Change la référence du vecteur.
Integer size() const
Nombre d'éléments du vecteur.
~Vector()
Supprime la référence.
VectorImpl * m_impl
Représentation interne du groupe.
RealArrayView values()
Valeurs du vecteur.
Vector()
Créé un vecteur vide.
void copy(const Vector &rhs)
Copie les éléments de rhs dans ce vecteur.
Chaîne de caractères unicode.
const char * localstr() const
Retourne la conversion de l'instance dans l'encodage UTF-8.
Vecteur 1D de données avec sémantique par valeur (style STL).
Int32 Integer
Type représentant un entier.
double Real
Type représentant un réel.
ArrayView< Real > RealArrayView
Equivalent C d'un tableau à une dimension de réels.
ConstArrayView< Real > RealConstArrayView
Equivalent C d'un tableau à une dimension de réels.