16#ifndef Matrice_Bloc_included
17#define Matrice_Bloc_included
19#include <TRUSTTabs_forward.h>
20#include <Matrice_Base.h>
22#include <TRUSTLists.h>
24#include <TRUST_Vector.h>
55 int ordre()
const override;
60 DoubleVect&
ajouter_multvect_(
const DoubleVect& x, DoubleVect& r )
const override;
62 DoubleTab&
ajouter_multTab_(
const DoubleTab& x, DoubleTab& r )
const override;
65 void scale(
const double x )
override;
67 void clean()
override;
69 void get_stencil( Stencil& stencil )
const override;
92 int dim(
int d )
const;
97 void remplir(
const IntLists& voisins,
const DoubleLists& valeurs,
const DoubleVect& terme_diag,
const int i,
const int n);
100 void remplir(
const IntLists& voisins,
const DoubleLists& valeurs,
const int i,
const int n,
const int j,
const int m);
103 void remplir(
const IntLists& voisins,
const DoubleLists& valeurs,
const DoubleVect& terme_diag,
const int i,
const int n,
const int j,
const int m);
129 template<
typename _TAB_T_,
typename _VAL_T_>
Classe Matrice_Base Classe de base de la hierarchie des matrices.
void block_to_morse_with_ptr(Matrice_Morse &result, std::vector< const double * > &coeffs) const
void get_stencil_coeff_templ(Stencil &stencil, _TAB_T_ &coeff_sp) const
Sortie & imprimer_formatte(Sortie &s) const override
Matrice_Bloc(int N=0, int M=0)
virtual void dimensionner(int N, int M)
int nb_bloc_lignes() const
int ordre() const override
If square matrix, returns number of lines, otherwise 0.
DoubleVect & ajouter_multvect_(const DoubleVect &x, DoubleVect &r) const override
void scale(const double x) override
DoubleTab & ajouter_multTab_(const DoubleTab &x, DoubleTab &r) const override
int nb_bloc_colonnes(void) const
void block_to_morse(Matrice_Morse &matrix) const
bool check_block_matrix_structure() const
void BlocToMatMorse(Matrice_Morse &matrix) const
void get_stencil_and_coeff_ptrs(Stencil &stencil, std::vector< const double * > &coeff_ptr) const override
DoubleVect & ajouter_multvectT_(const DoubleVect &x, DoubleVect &r) const override
virtual const Matrice & get_bloc(int i, int j) const
void remplir(const IntLists &voisins, const DoubleLists &valeurs, const DoubleVect &terme_diag, const int i, const int n)
int nb_lignes() const override
Return local number of lines (=size on the current proc).
void build_stencil() override
void get_stencil_and_coefficients(Stencil &stencil, StencilCoeffs &coefficients) const override
std::vector< Matrice_Base * > blocs_non_nuls_
int nb_colonnes() const override
Return local number of columns (=size on the current proc).
Sortie & imprimer(Sortie &s) const override
std::vector< int > line_offsets_
void get_stencil(Stencil &stencil) const override
std::vector< int > column_offsets_
void assert_check_block_matrix_structure() const
Matrice_Bloc & operator*=(double x)
Classe Matrice_Morse Represente une matrice M (creuse), non necessairement carree.
Classe Matrice Classe generique de la hierarchie des matrices.