16#ifndef Matrice_Base_included
17#define Matrice_Base_included
20#include <Matrix_tools.h>
52 virtual inline DoubleVect&
ajouter_multvect(
const DoubleVect& x, DoubleVect& r)
const;
53 virtual inline DoubleVect&
ajouter_multvectT(
const DoubleVect& x, DoubleVect& r)
const;
54 virtual inline DoubleTab&
ajouter_multTab(
const DoubleTab& , DoubleTab& r)
const;
56 virtual inline DoubleVect&
multvect_(
const DoubleVect&, DoubleVect& )
const;
57 virtual inline DoubleVect&
multvect(
const DoubleVect&, DoubleVect& )
const;
58 virtual inline DoubleVect&
multvectT_(
const DoubleVect&, DoubleVect& )
const;
59 virtual inline DoubleVect&
multvectT(
const DoubleVect&, DoubleVect& )
const;
60 virtual inline DoubleTab&
multTab(
const DoubleTab& , DoubleTab& r)
const;
67 virtual void scale(
const double x) =0;
104multvect(
const DoubleVect& x, DoubleVect& r)
const
112multvect_(
const DoubleVect& x, DoubleVect& r)
const
128multvectT(
const DoubleVect& x, DoubleVect& r)
const
136multvectT_(
const DoubleVect& x, DoubleVect& r)
const
153multTab(
const DoubleTab& x, DoubleTab& r)
const
221DoubleVect operator * (
const Matrice_Base& A,
const DoubleVect& vect);
Classe Matrice_Base Classe de base de la hierarchie des matrices.
int get_stencil_size() const
virtual DoubleTab & ajouter_multTab(const DoubleTab &, DoubleTab &r) const
NON CODE Operation de multiplication-accumulation (saxpy) matrice matrice.
void set_stencil(const Stencil &stencil)
virtual void get_symmetric_stencil(Stencil &stencil) const
virtual DoubleVect & multvectT(const DoubleVect &, DoubleVect &) const
Multiplication d'un vecteur par la matrice transposee.
virtual DoubleVect & ajouter_multvectT(const DoubleVect &x, DoubleVect &r) const
Operation de multiplication-accumulation (saxpy) matrice vecteur.
virtual void get_stencil(Stencil &stencil) const
bool is_stencil_up_to_date_
virtual DoubleVect & multvect_(const DoubleVect &, DoubleVect &) const
virtual DoubleVect & ajouter_multvect_(const DoubleVect &x, DoubleVect &r) const =0
virtual DoubleTab & ajouter_multTab_(const DoubleTab &x, DoubleTab &r) const =0
friend DoubleVect operator*(const Matrice_Base &, const DoubleVect &)
Fonction (hors classe) amie de la classe Matrice_Base.
virtual int nb_lignes() const =0
Return local number of lines (=size on the current proc).
virtual int nb_colonnes() const =0
Return local number of columns (=size on the current proc).
virtual DoubleVect & multvectT_(const DoubleVect &, DoubleVect &) const
virtual DoubleVect & multvect(const DoubleVect &, DoubleVect &) const
Multiplication d'un vecteur par la matrice.
virtual void get_symmetric_stencil_and_coefficients(Stencil &stencil, StencilCoeffs &coefficients) const
virtual void get_stencil_and_coeff_ptrs(Stencil &stencil, std::vector< const double * > &coeff_ptr) const
virtual void get_stencil_and_coefficients(Stencil &stencil, StencilCoeffs &coefficients) const
virtual int ordre() const =0
If square matrix, returns number of lines, otherwise 0.
virtual void build_stencil()
virtual DoubleTab & multTab(const DoubleTab &, DoubleTab &r) const
NON CODE Multiplication d'une matrice representee par un tableau par la matrice.
virtual void scale(const double x)=0
virtual Sortie & imprimer_formatte(Sortie &s) const
virtual DoubleVect & ajouter_multvect(const DoubleVect &x, DoubleVect &r) const
Operation de multiplication-accumulation (saxpy) matrice vecteur.
virtual DoubleVect & ajouter_multvectT_(const DoubleVect &x, DoubleVect &r) const =0
virtual Sortie & imprimer(Sortie &) const
bool is_stencil_up_to_date() const
Objet_U()
Constructeur par defaut : attribue un numero d'identifiant unique a l'objet (object_id_),...
static void exit(int exit_code=-1)
Routine de sortie de TRUST dans une region Kokkos.
virtual void echange_espace_virtuel(IsExchangeBlocking exchange_type=IsExchangeBlocking::DefaultBlocking, const std::string kernel_name="noname")