1#ifndef IRLBA_OPTIONS_HPP
2#define IRLBA_OPTIONS_HPP
20template<
class EigenVector_ = Eigen::VectorXd>
85 typename std::mt19937_64::result_type
seed = std::mt19937_64::default_seed;
97template<
typename Float_,
class EigenVector_>
100 if (tol.has_value() && *tol >= 0) {
103 return std::pow(std::numeric_limits<Float_>::epsilon(), 0.8);
107template<
class EigenVector_>
108double choose_singular_value_tolerance(
const Options<EigenVector_>& options) {
109 const auto& svtol = options.singular_value_ratio_tolerance;
110 if (svtol.has_value() && *svtol >= 0) {
113 return options.convergence_tolerance;
Options for running IRLBA in compute() and pca().
Definition Options.hpp:21
std::optional< double > invariant_subspace_tolerance
Definition Options.hpp:30
double convergence_tolerance
Definition Options.hpp:39
std::optional< double > singular_value_ratio_tolerance
Definition Options.hpp:48
bool exact_for_large_number
Definition Options.hpp:74
int max_iterations
Definition Options.hpp:62
std::optional< EigenVector_ > initial
Definition Options.hpp:91
bool exact_for_small_matrix
Definition Options.hpp:68
bool cap_number
Definition Options.hpp:80
std::optional< Eigen::Index > extra_work
Definition Options.hpp:56
std::mt19937_64::result_type seed
Definition Options.hpp:85