|
| HSSMatrixMPI (const DistM_t &A, const opts_t &opts) |
|
| HSSMatrixMPI (const structured::ClusterTree &t, const DistM_t &A, const opts_t &opts) |
|
| HSSMatrixMPI (const structured::ClusterTree &t, const BLACSGrid *g, const opts_t &opts) |
|
| HSSMatrixMPI (std::size_t m, std::size_t n, const BLACSGrid *Agrid, const dmult_t &Amult, const delem_t &Aelem, const opts_t &opts) |
|
| HSSMatrixMPI (std::size_t m, std::size_t n, const BLACSGrid *Agrid, const dmult_t &Amult, const delem_blocks_t &Aelem, const opts_t &opts) |
|
| HSSMatrixMPI (const structured::ClusterTree &t, const BLACSGrid *Agrid, const dmult_t &Amult, const delem_t &Aelem, const opts_t &opts) |
|
| HSSMatrixMPI (kernel::Kernel< real_t > &K, const BLACSGrid *Agrid, const opts_t &opts) |
|
| HSSMatrixMPI (const HSSMatrixMPI< scalar_t > &other) |
|
| HSSMatrixMPI (HSSMatrixMPI< scalar_t > &&other)=default |
|
HSSMatrixMPI< scalar_t > & | operator= (const HSSMatrixMPI< scalar_t > &other) |
|
HSSMatrixMPI< scalar_t > & | operator= (HSSMatrixMPI< scalar_t > &&other)=default |
|
std::unique_ptr< HSSMatrixBase< scalar_t > > | clone () const override |
|
const HSSMatrixBase< scalar_t > * | child (int c) const |
|
HSSMatrixBase< scalar_t > * | child (int c) |
|
const BLACSGrid * | grid () const override |
|
const BLACSGrid * | grid (const BLACSGrid *grid) const override |
|
const BLACSGrid * | grid_local () const override |
|
const MPIComm & | Comm () const |
|
MPI_Comm | comm () const |
|
int | Ptotal () const override |
|
int | Pactive () const override |
|
void | compress (const DistM_t &A, const opts_t &opts) |
|
void | compress (const dmult_t &Amult, const delem_t &Aelem, const opts_t &opts) |
|
void | compress (const dmult_t &Amult, const delem_blocks_t &Aelem, const opts_t &opts) |
|
void | compress (const kernel::Kernel< real_t > &K, const opts_t &opts) |
|
void | factor () override |
|
void | partial_factor () |
|
void | solve (DistM_t &b) const override |
|
void | forward_solve (WorkSolveMPI< scalar_t > &w, const DistM_t &b, bool partial) const override |
|
void | backward_solve (WorkSolveMPI< scalar_t > &w, DistM_t &x) const override |
|
DistM_t | apply (const DistM_t &b) const |
|
DistM_t | applyC (const DistM_t &b) const |
|
void | mult (Trans op, const DistM_t &x, DistM_t &y) const override |
|
scalar_t | get (std::size_t i, std::size_t j) const |
|
DistM_t | extract (const std::vector< std::size_t > &I, const std::vector< std::size_t > &J, const BLACSGrid *Bgrid) const |
|
std::vector< DistM_t > | extract (const std::vector< std::vector< std::size_t > > &I, const std::vector< std::vector< std::size_t > > &J, const BLACSGrid *Bgrid) const |
|
void | extract_add (const std::vector< std::size_t > &I, const std::vector< std::size_t > &J, DistM_t &B) const |
|
void | extract_add (const std::vector< std::vector< std::size_t > > &I, const std::vector< std::vector< std::size_t > > &J, std::vector< DistM_t > &B) const |
|
void | Schur_update (DistM_t &Theta, DistM_t &Vhat, DistM_t &DUB01, DistM_t &Phi) const |
|
void | Schur_product_direct (const DistM_t &Theta, const DistM_t &Vhat, const DistM_t &DUB01, const DistM_t &Phi, const DistM_t &_ThetaVhatC, const DistM_t &VhatCPhiC, const DistM_t &R, DistM_t &Sr, DistM_t &Sc) const |
|
std::size_t | max_rank () const |
|
std::size_t | total_memory () const |
|
std::size_t | total_nonzeros () const |
|
std::size_t | total_factor_nonzeros () const |
|
std::size_t | max_levels () const |
|
std::size_t | rank () const override |
|
std::size_t | memory () const override |
|
std::size_t | nonzeros () const override |
|
std::size_t | factor_nonzeros () const override |
|
std::size_t | levels () const override |
|
void | print_info (std::ostream &out=std::cout, std::size_t roff=0, std::size_t coff=0) const override |
|
DistM_t | dense () const |
|
void | shift (scalar_t sigma) override |
|
const TreeLocalRanges & | tree_ranges () const |
|
void | to_block_row (const DistM_t &A, DenseM_t &sub_A, DistM_t &leaf_A) const override |
|
void | allocate_block_row (int d, DenseM_t &sub_A, DistM_t &leaf_A) const override |
|
void | from_block_row (DistM_t &A, const DenseM_t &sub_A, const DistM_t &leaf_A, const BLACSGrid *lgrid) const override |
|
void | delete_trailing_block () override |
|
void | reset () override |
|
| HSSMatrixBase (std::size_t m, std::size_t n, bool active) |
|
virtual | ~HSSMatrixBase ()=default |
|
| HSSMatrixBase (const HSSMatrixBase< scalar_t > &other) |
|
HSSMatrixBase< scalar_t > & | operator= (const HSSMatrixBase< scalar_t > &other) |
|
| HSSMatrixBase (HSSMatrixBase &&h)=default |
|
HSSMatrixBase & | operator= (HSSMatrixBase &&h)=default |
|
virtual std::unique_ptr< HSSMatrixBase< scalar_t > > | clone () const =0 |
|
std::pair< std::size_t, std::size_t > | dims () const |
|
std::size_t | rows () const override |
|
std::size_t | cols () const override |
|
bool | leaf () const |
|
virtual std::size_t | factor_nonzeros () const |
|
const HSSMatrixBase< scalar_t > & | child (int c) const |
|
HSSMatrixBase< scalar_t > & | child (int c) |
|
bool | is_compressed () const |
|
bool | is_untouched () const |
|
bool | active () const |
|
virtual std::size_t | levels () const =0 |
|
virtual void | print_info (std::ostream &out=std::cout, std::size_t roff=0, std::size_t coff=0) const =0 |
|
void | set_openmp_task_depth (int depth) |
|
virtual void | shift (scalar_t sigma) override=0 |
|
virtual void | draw (std::ostream &of, std::size_t rlo, std::size_t clo) const |
|
virtual void | forward_solve (WorkSolveMPI< scalar_t > &w, const DistM_t &b, bool partial) const |
|
virtual void | backward_solve (WorkSolveMPI< scalar_t > &w, DistM_t &x) const |
|
virtual const BLACSGrid * | grid () const |
|
virtual const BLACSGrid * | grid (const BLACSGrid *local_grid) const |
|
virtual const BLACSGrid * | grid_local () const |
|
virtual int | Ptotal () const |
|
virtual int | Pactive () const |
|
virtual void | to_block_row (const DistM_t &A, DenseM_t &sub_A, DistM_t &leaf_A) const |
|
virtual void | allocate_block_row (int d, DenseM_t &sub_A, DistM_t &leaf_A) const |
|
virtual void | from_block_row (DistM_t &A, const DenseM_t &sub_A, const DistM_t &leaf_A, const BLACSGrid *lg) const |
|
virtual | ~StructuredMatrix ()=default |
|
virtual std::size_t | rows () const =0 |
|
virtual std::size_t | cols () const =0 |
|
virtual std::size_t | memory () const =0 |
|
virtual std::size_t | nonzeros () const =0 |
|
virtual std::size_t | rank () const =0 |
|
virtual std::size_t | local_rows () const |
|
virtual std::size_t | begin_row () const |
|
virtual std::size_t | end_row () const |
|
virtual const std::vector< int > & | dist () const |
|
virtual const std::vector< int > & | rdist () const |
|
virtual const std::vector< int > & | cdist () const |
|
virtual void | mult (Trans op, const DenseMatrix< scalar_t > &x, DenseMatrix< scalar_t > &y) const |
|
void | mult (Trans op, int m, const scalar_t *x, int ldx, scalar_t *y, int ldy) const |
|
virtual void | mult (Trans op, const DistributedMatrix< scalar_t > &x, DistributedMatrix< scalar_t > &y) const |
|
virtual void | factor () |
|
virtual void | solve (DenseMatrix< scalar_t > &b) const |
|
virtual void | solve (int nrhs, scalar_t *b, int ldb) const |
|
virtual void | solve (DistributedMatrix< scalar_t > &b) const |
|
virtual void | shift (scalar_t s) |
|
template<typename scalar_t>
class strumpack::HSS::HSSMatrixMPI< scalar_t >
Distributed memory implementation of the HSS (Hierarchically Semi-Separable) matrix format.
This is for non-symmetric matrices, but can be used with symmetric matrices as well. This class inherits from StructuredMatrix.
- Template Parameters
-
scalar_t | Can be float, double, std:complex<float> or std::complex<double>. |
- See also
- HSSMatrix, structured::StructuredMatrix