strumpack::BLR Namespace Reference

Classes

class  BLRExtendAdd
 
class  BLRMatrix
 Class to represent a block low-rank matrix. More...
 
class  BLRMatrixMPI
 Distributed memory block low rank matrix. More...
 
class  BLROptions
 Class containing several options for the BLR code and data-structures. More...
 
class  BLRTile
 
class  ProcessorGrid2D
 Representation of a 2D processor grid, similar to a BLACS grid, but not requiring ScaLAPACK. More...
 

Typedefs

template<typename T >
using extract_t = std::function< void(const std::vector< std::size_t > &, const std::vector< std::size_t > &, DenseMatrix< T > &)>
 
using adm_t = DenseMatrix< bool >
 

Enumerations

enum class  LowRankAlgorithm { RRQR , ACA , BACA }
 
enum class  Admissibility { STRONG , WEAK }
 
enum class  BLRFactorAlgorithm {
  COLWISE , RL , LL , COMB ,
  STAR
}
 
enum class  CompressionKernel { HALF , FULL }
 

Functions

template<typename real_t >
real_t default_BLR_rel_tol ()
 
template<typename real_t >
real_t default_BLR_abs_tol ()
 
template<>
float default_BLR_rel_tol ()
 
template<>
float default_BLR_abs_tol ()
 
std::string get_name (LowRankAlgorithm a)
 
std::string get_name (Admissibility a)
 
std::string get_name (BLRFactorAlgorithm a)
 
std::string get_name (CompressionKernel a)
 
template<typename scalar_t >
void LUAR (const std::vector< BLRTile< scalar_t > * > &Ti, const std::vector< BLRTile< scalar_t > * > &Tj, DenseMatrixWrapper< scalar_t > &tij, const BLROptions< scalar_t > &opts, int *B)
 
template<typename scalar_t >
void LUAR_B22 (std::size_t i, std::size_t j, std::size_t kmax, BLRMatrix< scalar_t > &B12, BLRMatrix< scalar_t > &B21, DenseMatrix< scalar_t > &A22, const BLROptions< scalar_t > &opts, int *B)
 
template<typename scalar_t >
void trsm (Side s, UpLo ul, Trans ta, Diag d, scalar_t alpha, const BLRMatrix< scalar_t > &a, DenseMatrix< scalar_t > &b, int task_depth)
 
template<typename scalar_t >
void trsv (UpLo ul, Trans ta, Diag d, const BLRMatrix< scalar_t > &a, DenseMatrix< scalar_t > &b, int task_depth)
 
template<typename scalar_t >
void gemv (Trans ta, scalar_t alpha, const BLRMatrix< scalar_t > &a, const DenseMatrix< scalar_t > &x, scalar_t beta, DenseMatrix< scalar_t > &y, int task_depth)
 
template<typename scalar_t >
void gemm (Trans ta, Trans tb, scalar_t alpha, const BLRMatrix< scalar_t > &a, const BLRMatrix< scalar_t > &b, scalar_t beta, DenseMatrix< scalar_t > &c, int task_depth)
 
template<typename scalar_t >
void gemm (Trans ta, Trans tb, scalar_t alpha, const BLRMatrix< scalar_t > &A, const DenseMatrix< scalar_t > &B, scalar_t beta, DenseMatrix< scalar_t > &C, int task_depth)
 
template<typename scalar_t >
void draw (const BLRMatrix< scalar_t > &B, const std::string &name)
 
template<typename scalar_t >
void LUAR (std::size_t kmax, std::size_t lk, std::vector< std::unique_ptr< BLRTile< scalar_t > > > &Ti, std::vector< std::unique_ptr< BLRTile< scalar_t > > > &Tj, DenseMatrix< scalar_t > &tij, const BLROptions< scalar_t > &opts, std::size_t tmp)
 
template<typename scalar_t >
void LUAR_A22 (std::size_t kmax, std::size_t lj, std::size_t lk, std::vector< std::unique_ptr< BLRTile< scalar_t > > > &Ti, std::vector< std::unique_ptr< BLRTile< scalar_t > > > &Tj, DenseMatrix< scalar_t > &tij, const BLROptions< scalar_t > &opts, std::size_t tmp)
 
template<typename scalar_t >
void trsv (UpLo ul, Trans ta, Diag d, const BLRMatrixMPI< scalar_t > &a, BLRMatrixMPI< scalar_t > &b)
 
template<typename scalar_t >
void gemv (Trans ta, scalar_t alpha, const BLRMatrixMPI< scalar_t > &a, const BLRMatrixMPI< scalar_t > &x, scalar_t beta, BLRMatrixMPI< scalar_t > &y)
 
template<typename scalar_t >
void trsm (Side s, UpLo ul, Trans ta, Diag d, scalar_t alpha, const BLRMatrixMPI< scalar_t > &a, BLRMatrixMPI< scalar_t > &b)
 
template<typename scalar_t >
void gemm (Trans ta, Trans tb, scalar_t alpha, const BLRMatrixMPI< scalar_t > &a, const BLRMatrixMPI< scalar_t > &b, scalar_t beta, BLRMatrixMPI< scalar_t > &c)
 

Detailed Description

BLR namespace.