strumpack::HODLR Namespace Reference

Classes

class  HODLROptions
 Class containing several options for the HODLR code and data-structures. More...
 
struct  ExtractionMeta
 
class  HODLRMatrix
 Hierarchically low-rank matrix representation. More...
 
struct  AelemCommPtrs
 
class  ButterflyMatrix
 Butterfly matrix representation, this includes low-rank matrix representation as a special case. More...
 

Enumerations

enum class  CompressionAlgorithm { RANDOM_SAMPLING , ELEMENT_EXTRACTION }
 

Functions

template<typename real_t >
real_t default_HODLR_rel_tol ()
 
template<typename real_t >
real_t default_HODLR_abs_tol ()
 
template<>
float default_HODLR_rel_tol ()
 
template<>
float default_HODLR_abs_tol ()
 
std::string get_name (CompressionAlgorithm a)
 
CompressionAlgorithm get_compression_algorithm (const std::string &c)
 
template<typename scalar_t >
void HODLR_block_evaluation (int *Ninter, int *Nallrows, int *Nallcols, int *Nalldat_loc, int *allrows, int *allcols, scalar_t *alldat_loc, int *rowids, int *colids, int *pgids, int *Npmap, int *pmaps, void *AC)
 
template<typename scalar_t >
void HODLR_block_evaluation_seq (int *Ninter, int *Nallrows, int *Nallcols, int *Nalldat_loc, int *allrows, int *allcols, scalar_t *alldat_loc, int *rowids, int *colids, int *pgids, int *Npmap, int *pmaps, void *f)
 
template<typename integer_t >
DenseMatrix< int > get_odiag_neighbors (int knn, const CSRGraph< integer_t > &gAB, const CSRGraph< integer_t > &gA, const CSRGraph< integer_t > &gB)
 

Detailed Description

Code in this namespace is a wrapper around Yang Liu's Fortran code: https://github.com/liuyangzhuan/ButterflyPACK

Code in this namespace is a wrapper aroung Yang Liu's Fortran code: https://github.com/liuyangzhuan/hod-lr-bf

Enumeration Type Documentation

◆ CompressionAlgorithm

Enumeration of possible compressions, through randomized sampling or via element extraction.

Enumerator
RANDOM_SAMPLING 

Random sampling.

ELEMENT_EXTRACTION 

Element extraction.

Function Documentation

◆ default_HODLR_abs_tol() [1/2]

template<typename real_t >
real_t strumpack::HODLR::default_HODLR_abs_tol ( )
inline

Get the default absolute HODLR compression tolerance (this is for double precision, might be overloaded for single precision). This can be changed using the HODLROptions object.

◆ default_HODLR_abs_tol() [2/2]

template<>
float strumpack::HODLR::default_HODLR_abs_tol ( )
inline

Get the default absolute HODLR compression tolerance for single precision computations. This can be changed using the HODLROptions object.

◆ default_HODLR_rel_tol() [1/2]

template<typename real_t >
real_t strumpack::HODLR::default_HODLR_rel_tol ( )
inline

Get the default relative HODLR compression tolerance (this is for double precision, might be overloaded depending on floating point precision). This can be changed using the HODLROptions object. Tuning this parameter (in the HODLROptions object) is crucial for performance of the HODLR algorithms.

◆ default_HODLR_rel_tol() [2/2]

template<>
float strumpack::HODLR::default_HODLR_rel_tol ( )
inline

Get the default relative HODLR compression tolerance for single precision computations. This can be changed using the HODLROptions object. Tuning this parameter (in the HODLROptions<float> object) is crucial for performance of the HODLR algorithms.

◆ get_compression_algorithm()

CompressionAlgorithm strumpack::HODLR::get_compression_algorithm ( const std::string &  c)

Return a CompressionAlgorithm enum based on the input string.

Parameters
cString, possible values are 'natural', '2means', 'kdtree', 'pca' and 'cobble'. This is case sensitive.

◆ get_name()

std::string strumpack::HODLR::get_name ( CompressionAlgorithm  a)

Return a string with the name of the compression algorithm.

Parameters
atype of the compression algorihtm
Returns
name, string with a short description