16#ifndef Matrice_Base_included
17#define Matrice_Base_included
20#include <Matrix_tools.h>
51 virtual inline DoubleVect&
ajouter_multvect(
const DoubleVect& x, DoubleVect& r)
const;
52 virtual inline DoubleVect&
ajouter_multvectT(
const DoubleVect& x, DoubleVect& r)
const;
53 virtual inline DoubleTab&
ajouter_multTab(
const DoubleTab& , DoubleTab& r)
const;
55 virtual inline DoubleVect&
multvect_(
const DoubleVect&, DoubleVect& )
const;
56 virtual inline DoubleVect&
multvect(
const DoubleVect&, DoubleVect& )
const;
57 virtual inline DoubleVect&
multvectT_(
const DoubleVect&, DoubleVect& )
const;
58 virtual inline DoubleVect&
multvectT(
const DoubleVect&, DoubleVect& )
const;
59 virtual inline DoubleTab&
multTab(
const DoubleTab& , DoubleTab& r)
const;
66 virtual void scale(
const double x) =0;
103multvect(
const DoubleVect& x, DoubleVect& r)
const
111multvect_(
const DoubleVect& x, DoubleVect& r)
const
127multvectT(
const DoubleVect& x, DoubleVect& r)
const
135multvectT_(
const DoubleVect& x, DoubleVect& r)
const
152multTab(
const DoubleTab& x, DoubleTab& r)
const
220DoubleVect operator * (
const Matrice_Base& A,
const DoubleVect& vect);
Matrice_Base class - Base class of the matrix hierarchy.
int get_stencil_size() const
virtual DoubleTab & ajouter_multTab(const DoubleTab &, DoubleTab &r) const
NOT IMPLEMENTED Matrix-matrix multiply-accumulate operation (saxpy).
void set_stencil(const Stencil &stencil)
virtual void get_symmetric_stencil(Stencil &stencil) const
virtual DoubleVect & multvectT(const DoubleVect &, DoubleVect &) const
Multiplication of a vector by the transposed matrix.
virtual DoubleVect & ajouter_multvectT(const DoubleVect &x, DoubleVect &r) const
Matrix-vector multiply-accumulate operation (saxpy).
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 &)
Friend function (outside the class) of the Matrice_Base class.
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 of a vector by the matrix.
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
NOT IMPLEMENTED Multiplication of a matrix represented by an array by the matrix.
virtual void scale(const double x)=0
virtual Sortie & imprimer_formatte(Sortie &s) const
virtual DoubleVect & ajouter_multvect(const DoubleVect &x, DoubleVect &r) const
Matrix-vector multiply-accumulate operation (saxpy).
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()
Default constructor: assigns a unique identifier to the object (object_id_) and registers the object ...
static void exit(int exit_code=-1)
Exit routine for TRUST within a Kokkos region.
virtual void echange_espace_virtuel(IsExchangeBlocking exchange_type=IsExchangeBlocking::DefaultBlocking, const std::string kernel_name="noname")