|
| BLRMatrix (DenseM_t &A, const std::vector< std::size_t > &rowtiles, const std::vector< std::size_t > &coltiles, const Opts_t &opts) |
|
| BLRMatrix (DenseM_t &A, const std::vector< std::size_t > &tiles, const adm_t &admissible, const Opts_t &opts) |
|
| BLRMatrix (std::size_t m, const std::vector< std::size_t > &rowtiles, std::size_t n, const std::vector< std::size_t > &coltiles) |
|
std::size_t | rows () const override |
|
std::size_t | cols () const override |
|
std::size_t | memory () const override |
|
std::size_t | nonzeros () const override |
|
std::size_t | rank () const override |
|
DenseM_t | dense () const |
|
void | dense (DenseM_t &A) const |
|
void | draw (std::ostream &of, std::size_t roff, std::size_t coff) const |
|
void | print (const std::string &name) const |
|
void | clear () |
|
void | solve (DenseM_t &x) const override |
|
const std::vector< int > & | piv () const |
|
void | mult (Trans op, const DenseM_t &x, DenseM_t &y) const override |
|
std::size_t | rg2t (std::size_t i) const |
|
std::size_t | cg2t (std::size_t j) const |
|
scalar_t | operator() (std::size_t i, std::size_t j) const |
|
scalar_t & | operator() (std::size_t i, std::size_t j) |
|
DenseM_t | extract (const std::vector< std::size_t > &I, const std::vector< std::size_t > &J) const |
|
void | decompress () |
|
void | decompress_local_columns (int c_min, int c_max) |
|
void | remove_tiles_before_local_column (int c_min, int c_max) |
|
std::size_t | rowblocks () const |
|
std::size_t | colblocks () const |
|
std::size_t | tilerows (std::size_t i) const |
|
std::size_t | tilecols (std::size_t j) const |
|
std::size_t | tileroff (std::size_t i) const |
|
std::size_t | tilecoff (std::size_t j) const |
|
BLRTile< scalar_t > & | tile (std::size_t i, std::size_t j) |
|
const BLRTile< scalar_t > & | tile (std::size_t i, std::size_t j) const |
|
std::unique_ptr< BLRTile< scalar_t > > & | block (std::size_t i, std::size_t j) |
|
DenseMW_t | tile (DenseM_t &A, std::size_t i, std::size_t j) const |
|
DenseTile< scalar_t > & | tile_dense (std::size_t i, std::size_t j) |
|
const DenseTile< scalar_t > & | tile_dense (std::size_t i, std::size_t j) const |
|
void | compress_tile (std::size_t i, std::size_t j, const Opts_t &opts) |
|
void | fill (scalar_t v) |
|
void | fill_col (scalar_t v, std::size_t k, std::size_t CP) |
|
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) |
|
|
static void | construct_and_partial_factor (DenseM_t &A11, DenseM_t &A12, DenseM_t &A21, DenseM_t &A22, BLRMatrix< scalar_t > &B11, BLRMatrix< scalar_t > &B12, BLRMatrix< scalar_t > &B21, const std::vector< std::size_t > &tiles1, const std::vector< std::size_t > &tiles2, const adm_t &admissible, const Opts_t &opts) |
|
static void | construct_and_partial_factor (BLRMatrix< scalar_t > &B11, BLRMatrix< scalar_t > &B12, BLRMatrix< scalar_t > &B21, BLRMatrix< scalar_t > &B22, const std::vector< std::size_t > &tiles1, const std::vector< std::size_t > &tiles2, const adm_t &admissible, const Opts_t &opts) |
|
static void | construct_and_partial_factor_col (BLRMatrix< scalar_t > &B11, BLRMatrix< scalar_t > &B12, BLRMatrix< scalar_t > &B21, BLRMatrix< scalar_t > &B22, const std::vector< std::size_t > &tiles1, const std::vector< std::size_t > &tiles2, const adm_t &admissible, const Opts_t &opts, const std::function< void(int, bool, std::size_t)> &blockcol) |
|
static void | construct_and_partial_factor (std::size_t n1, std::size_t n2, const extract_t< scalar_t > &A11, const extract_t< scalar_t > &A12, const extract_t< scalar_t > &A21, const extract_t< scalar_t > &A22, BLRMatrix< scalar_t > &B11, BLRMatrix< scalar_t > &B12, BLRMatrix< scalar_t > &B21, BLRMatrix< scalar_t > &B22, const std::vector< std::size_t > &tiles1, const std::vector< std::size_t > &tiles2, const adm_t &admissible, const BLROptions< scalar_t > &opts) |
|
static void | trsmLNU_gemm (const BLRMatrix< scalar_t > &F1, const BLRMatrix< scalar_t > &F2, DenseM_t &B1, DenseM_t &B2, int task_depth) |
|
static void | gemm_trsmUNN (const BLRMatrix< scalar_t > &F1, const BLRMatrix< scalar_t > &F2, DenseM_t &B1, DenseM_t &B2, int task_depth) |
|
template<typename scalar_t>
class strumpack::BLR::BLRMatrix< scalar_t >
Class to represent a block low-rank matrix.
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
- structured::StructuredMatrix, BLRMatrixMPI