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"
23namespace Arcane::MatVec
39 : m_values(size, init_value)
42 m_values.fill(init_value);
53 VectorImpl(
const VectorImpl& rhs)
54 : m_values(rhs.m_values)
61 void operator=(
const VectorImpl& rhs);
65 Integer size()
const {
return m_values.size(); }
68 void dump(std::ostream& o)
const
71 o <<
"(Vector ptr=" <<
this <<
" size=" << size <<
")\n";
72 for (
Integer i = 0; i < size; ++i)
73 o <<
"[" << i <<
"]=" << m_values[i] <<
'\n';
78 return new VectorImpl(m_values);
80 void copy(
const VectorImpl& rhs)
82 m_values.copy(rhs.m_values);
93 void removeReference()
96 if (m_nb_reference == 0)
143 m_impl->removeReference();
154 m_impl->removeReference();
197dump(std::ostream& o)
const
210 for (
Integer i = 0; i < size; ++i) {
211 Real v2 = math::abs(m_values[i]);
233 std::ifstream ifile(file_name.
localstr());
235 ARCANE_FATAL(
"Can not read Hypre vector file='{0}'", file_name);
238 ifile >> ws >> xmin >> ws >> xmax;
239 Integer nb = (xmax - xmin) + 1;
242 for (
Integer i = 0; i < nb; ++i) {
245 ifile >> ws >> column_id >> 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.