|  | 
|  | 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 | 
|  | 
| 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 | 
|  | 
| 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 | 
|  | 
| void | set_openmp_task_depth (int depth) | 
|  | 
| virtual void | draw (std::ostream &of, std::size_t rlo, std::size_t clo) const | 
|  | 
| virtual | ~StructuredMatrix ()=default | 
|  | 
| 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 | solve (DenseMatrix< scalar_t > &b) const | 
|  | 
| virtual void | solve (int nrhs, scalar_t *b, int ldb) const | 
|  | 
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