strumpack::HODLR::HODLROptions< scalar_t > Class Template Reference

Class containing several options for the HODLR code and data-structures. More...

#include <HODLROptions.hpp>

Inheritance diagram for strumpack::HODLR::HODLROptions< scalar_t >:
Collaboration diagram for strumpack::HODLR::HODLROptions< scalar_t >:

Public Types

using real_t = typename RealType< scalar_t >::value_type
 

Public Member Functions

 HODLROptions ()
 
 HODLROptions (const structured::StructuredOptions< scalar_t > &sopts)
 
void set_rank_guess (int rank_guess)
 
void set_rank_rate (double rank_rate)
 
void set_clustering_algorithm (ClusteringAlgorithm a)
 
void set_compression_algorithm (CompressionAlgorithm a)
 
void set_butterfly_levels (int bfl)
 
void set_BACA_block_size (int BACA)
 
void set_BF_sampling_parameter (double param)
 
void set_geo (int geo)
 
void set_lr_leaf (int lr_leaf)
 
void set_knn_hodlrbf (int k)
 
void set_knn_lrbf (int k)
 
void set_less_adapt (bool l)
 
void set_BF_entry_n15 (bool l)
 
int rank_guess () const
 
double rank_rate () const
 
ClusteringAlgorithm clustering_algorithm () const
 
CompressionAlgorithm compression_algorithm () const
 
int butterfly_levels () const
 
int BACA_block_size () const
 
double BF_sampling_parameter () const
 
int geo () const
 
int lr_leaf () const
 
int knn_hodlrbf () const
 
int knn_lrbf () const
 
bool less_adapt () const
 
bool BF_entry_n15 () const
 
void set_from_command_line (int argc, const char *const *cargv) override
 
void describe_options () const override
 
- Public Member Functions inherited from strumpack::structured::StructuredOptions< scalar_t >
 StructuredOptions (Type type)
 
void set_rel_tol (real_t rel_tol)
 
void set_abs_tol (real_t abs_tol)
 
void set_leaf_size (int leaf_size)
 
void set_max_rank (int max_rank)
 
void set_type (Type a)
 
void set_verbose (bool verbose)
 
real_t rel_tol () const
 
real_t abs_tol () const
 
int leaf_size () const
 
int max_rank () const
 
Type type () const
 
bool verbose () const
 

Detailed Description

template<typename scalar_t>
class strumpack::HODLR::HODLROptions< scalar_t >

Class containing several options for the HODLR code and data-structures.

Template Parameters
scalar_tscalar type, can be float, double, std::complex<float> or std::complex<double>. This is used here mainly because tolerances might depend on the precision.

Member Typedef Documentation

◆ real_t

template<typename scalar_t >
using strumpack::HODLR::HODLROptions< scalar_t >::real_t = typename RealType<scalar_t>::value_type

real_t is the real type corresponding to the (possibly complex) scalar_t template parameter

Constructor & Destructor Documentation

◆ HODLROptions()

template<typename scalar_t >
strumpack::HODLR::HODLROptions< scalar_t >::HODLROptions ( )
inline

Default constructor, sets all options to their default values.

Member Function Documentation

◆ BACA_block_size()

template<typename scalar_t >
int strumpack::HODLR::HODLROptions< scalar_t >::BACA_block_size ( ) const
inline

Get the BACA block size.

◆ BF_entry_n15()

template<typename scalar_t >
bool strumpack::HODLR::HODLROptions< scalar_t >::BF_entry_n15 ( ) const
inline

Returns whether or not to use N^1.5 entry-evaluation-based algorithm.

◆ BF_sampling_parameter()

template<typename scalar_t >
double strumpack::HODLR::HODLROptions< scalar_t >::BF_sampling_parameter ( ) const
inline

Get butterfly sampling parameter.

◆ butterfly_levels()

template<typename scalar_t >
int strumpack::HODLR::HODLROptions< scalar_t >::butterfly_levels ( ) const
inline

get the number of butterfly levels to use for each HODLR matrix.

◆ clustering_algorithm()

template<typename scalar_t >
ClusteringAlgorithm strumpack::HODLR::HODLROptions< scalar_t >::clustering_algorithm ( ) const
inline

Get the clustering algorithm to be used. This is used when constructing an HODLR approximation of a kernel matrix.

Returns
clustering algorithm
See also
set_clustering_algorithm

◆ compression_algorithm()

template<typename scalar_t >
CompressionAlgorithm strumpack::HODLR::HODLROptions< scalar_t >::compression_algorithm ( ) const
inline

Get the compression algorithm to be used.

Returns
compression algorithm
See also
set_compression_algorithm

◆ describe_options()

template<typename scalar_t >
void strumpack::HODLR::HODLROptions< scalar_t >::describe_options ( ) const
overridevirtual

Print an overview of the available command line options and their current values.

Reimplemented from strumpack::structured::StructuredOptions< scalar_t >.

◆ geo()

template<typename scalar_t >
int strumpack::HODLR::HODLROptions< scalar_t >::geo ( ) const
inline

Use geometry information? 0, 1 or 2

◆ knn_hodlrbf()

template<typename scalar_t >
int strumpack::HODLR::HODLROptions< scalar_t >::knn_hodlrbf ( ) const
inline

The number of neighbors to use in the HODLR or HODBF construction.

◆ knn_lrbf()

template<typename scalar_t >
int strumpack::HODLR::HODLROptions< scalar_t >::knn_lrbf ( ) const
inline

The number of neighbors to use in the LR or Butterfly block construction.

◆ less_adapt()

template<typename scalar_t >
bool strumpack::HODLR::HODLROptions< scalar_t >::less_adapt ( ) const
inline

Returns whether or not to use less_adapt in the randomized construction algorithm.

◆ lr_leaf()

template<typename scalar_t >
int strumpack::HODLR::HODLROptions< scalar_t >::lr_leaf ( ) const
inline

Bottom level compression algorithms in H-BACA 1, 2, 3, 4, or 5

◆ rank_guess()

template<typename scalar_t >
int strumpack::HODLR::HODLROptions< scalar_t >::rank_guess ( ) const
inline

Get the initial guess for the rank.

◆ rank_rate()

template<typename scalar_t >
double strumpack::HODLR::HODLROptions< scalar_t >::rank_rate ( ) const
inline

Get the rate of increment for adaptively determining the rank.

◆ set_BACA_block_size()

template<typename scalar_t >
void strumpack::HODLR::HODLROptions< scalar_t >::set_BACA_block_size ( int  BACA)
inline

Set the BACA block size.

◆ set_BF_entry_n15()

template<typename scalar_t >
void strumpack::HODLR::HODLROptions< scalar_t >::set_BF_entry_n15 ( bool  l)
inline

Enable/disable the N^1.5 entry evaluation-based construction.

◆ set_BF_sampling_parameter()

template<typename scalar_t >
void strumpack::HODLR::HODLROptions< scalar_t >::set_BF_sampling_parameter ( double  param)
inline

Set sampling parameter for use in linear complexity butterfly compression, higher for more robust sampling.

◆ set_butterfly_levels()

template<typename scalar_t >
void strumpack::HODLR::HODLROptions< scalar_t >::set_butterfly_levels ( int  bfl)
inline

Set the number of butterfly levels to use for each HODLR matrix.

◆ set_clustering_algorithm()

template<typename scalar_t >
void strumpack::HODLR::HODLROptions< scalar_t >::set_clustering_algorithm ( ClusteringAlgorithm  a)
inline

Specify the clustering algorithm. This is used when constructing a kernel matrix approximation.

◆ set_compression_algorithm()

template<typename scalar_t >
void strumpack::HODLR::HODLROptions< scalar_t >::set_compression_algorithm ( CompressionAlgorithm  a)
inline

Specify the compression algorithm to be used.

◆ set_from_command_line()

template<typename scalar_t >
void strumpack::HODLR::HODLROptions< scalar_t >::set_from_command_line ( int  argc,
const char *const *  cargv 
)
overridevirtual

Parse the command line options given by argc and argv. The options will not be modified. Run with –help to see an overview of available options, or call describe_options().

Parameters
argcNumber of elements in argv
argvArray with options

Reimplemented from strumpack::structured::StructuredOptions< scalar_t >.

◆ set_geo()

template<typename scalar_t >
void strumpack::HODLR::HODLROptions< scalar_t >::set_geo ( int  geo)
inline

geo should be 0, 1, 2 or 3. 0 means use point geometry, 1 means do not use any geometry. 2 means use the graph connectivity for the distance and admissibility info, 3 means use the graph to directly find closest neighbors.

◆ set_knn_hodlrbf()

template<typename scalar_t >
void strumpack::HODLR::HODLROptions< scalar_t >::set_knn_hodlrbf ( int  k)
inline

Set the number of neighbors to use in construction of the HODLR or HODBF matrices.

◆ set_knn_lrbf()

template<typename scalar_t >
void strumpack::HODLR::HODLROptions< scalar_t >::set_knn_lrbf ( int  k)
inline

Set the number of neighbors to use in construction of the LR or Butterfly blocks.

◆ set_less_adapt()

template<typename scalar_t >
void strumpack::HODLR::HODLROptions< scalar_t >::set_less_adapt ( bool  l)
inline

Enable/disable the less_adapt algorithm in randomized construction.

◆ set_lr_leaf()

template<typename scalar_t >
void strumpack::HODLR::HODLROptions< scalar_t >::set_lr_leaf ( int  lr_leaf)
inline

lr_leaf should be 1, 2, 3, 4, 5. 1 means svd, 2 means rrqr, 3 means baseline aca, 4 means baca original version, 5 means baca improved version.

◆ set_rank_guess()

template<typename scalar_t >
void strumpack::HODLR::HODLROptions< scalar_t >::set_rank_guess ( int  rank_guess)
inline

Set the initial guess for the rank.

◆ set_rank_rate()

template<typename scalar_t >
void strumpack::HODLR::HODLROptions< scalar_t >::set_rank_rate ( double  rank_rate)
inline

Set the rate of increment for adaptively determining the rank.


The documentation for this class was generated from the following file: