Class containing several options for the HSS code and data-structures. More...
#include <HSSOptions.hpp>
Public Types | |
using | real_t = typename RealType< scalar_t >::value_type |
Public Member Functions | |
HSSOptions (const structured::StructuredOptions< scalar_t > &sopts) | |
void | set_d0 (int d0) |
void | set_dd (int dd) |
void | set_p (int p) |
void | set_nnz0 (int nnz0) |
void | set_nnz (int nnz) |
void | set_random_engine (random::RandomEngine random_engine) |
void | set_random_distribution (random::RandomDistribution random_distribution) |
void | set_compression_algorithm (CompressionAlgorithm a) |
void | set_compression_sketch (CompressionSketch a) |
void | set_SJLT_algo (SJLTAlgo a) |
void | set_clustering_algorithm (ClusteringAlgorithm a) |
void | set_approximate_neighbors (int neighbors) |
void | set_ann_iterations (int iters) |
void | set_user_defined_random (bool user_defined_random) |
void | set_synchronized_compression (bool sync) |
void | set_log_ranks (bool log_ranks) |
int | d0 () const |
int | nnz0 () const |
int | nnz () const |
int | dd () const |
int | p () const |
random::RandomEngine | random_engine () const |
random::RandomDistribution | random_distribution () const |
CompressionAlgorithm | compression_algorithm () const |
CompressionSketch | compression_sketch () const |
SJLTAlgo | SJLT_algo () const |
ClusteringAlgorithm | clustering_algorithm () const |
int | approximate_neighbors () const |
int | ann_iterations () const |
bool | user_defined_random () const |
bool | synchronized_compression () const |
bool | log_ranks () 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 |
Class containing several options for the HSS code and data-structures.
scalar_t | scalar type, can be float, double, std::complex<float> or std::complex<double>. This is used here mainly because tolerances might depend on the precision. |
using strumpack::HSS::HSSOptions< 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
|
inline |
Get the number of iterations used in the approximate nearest neighbors search algorithm used in the HSS compression algorithm for kernel matrices. The algorithm will build iters number of random trees.
|
inline |
Get the number of approximate nearest neighbors used in the HSS compression algorithm for kernel matrices.
|
inline |
Get the clustering algorithm to be used. This is used when constructing an HSS approximation of a kernel matrix.
|
inline |
Return which variant of the compression algorithm to use.
|
inline |
|
inline |
|
overridevirtual |
Print an overview of the available command line options and their current values.
Reimplemented from strumpack::structured::StructuredOptions< scalar_t >.
|
inline |
Check if the ranks should be printed to a log file. NOT supported currently
|
inline |
Get the increment number of nonzero entries per row in the SJLT sketch when incrementing by size dd
|
inline |
Get the initial number of nonzero entries per row in the SJLT sketch.
|
inline |
Get the current value of the oversampling parameter.
|
inline |
Return the type of random distribution to use in the random sampling HSS construction.
|
inline |
|
inline |
Set the number of iterations used in the approximate nearest neighbors search algorithm used in the HSS compression algorithm for kernel matrices. The algorithm will build iters number of random trees.
iters | Number of random trees to be build |
|
inline |
Set the number of approximate nearest neighbors used in the HSS compression algorithm for kernel matrices.
neighbors | Number of approximate neighbors |
|
inline |
Specify the clustering algorithm. This is used when constructing a kernel matrix approximation.
a | Clustering algorithm. |
|
inline |
Specify the variant of the adaptive compression algorithm. See the manual for more information.
a | Type of (adaptive) compression scheme |
|
inline |
Specify the variant of the sketching matrix.
a | Type of sketching matrix |
|
inline |
Set the initial number of random samples to be used in the random sampling HSS construction algorithm. See the manual for more information on the randomized compression algorithm.
|
inline |
Set the number of random to be used to increment the random samples vectors in the adaptive randomized HSS compression algorithm. This is only used when compression_algorithm() == CompressionAlgorithm::STABLE. See the manual for more information on the randomized compression algorithm.
|
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().
argc | Number of elements in argv |
argv | Array with options |
Reimplemented from strumpack::structured::StructuredOptions< scalar_t >.
|
inline |
Log the HSS ranks to a file. TODO is this currently supported??
|
inline |
Set the number of nonzeros per row added each time dd columns are added to the SJLT sketch.
|
inline |
Set the initial number of nonzeros per row to be used in SJLT sketch.
|
inline |
Oversampling parameter. Used in adaptive compression, to check stopping criterion.
|
inline |
Set the random distribution, used in randomized compression.
|
inline |
Set the random engine, used in randomized compression.
|
inline |
Specify the variant of the sketching matrix.
a | Type of sketching matrix |
|
inline |
Set this to true if you require communication in the element extraction routine, since in that case the element extraction is collective, and has to be synchronized.
|
inline |
Set this to true if you want to manually fill the random sample vectors with random values.
|
inline |
Whether or not the synchronize the element extraction routine.
|
inline |
Will the user define its own random matrices?