Releases: libscran/irlba
Releases · libscran/irlba
v3.1.0
- Metrics (convergence status, number of iterations) are now reported in their own dedicated
Metricsclass fromcompute()andpca(). This also includes the number of matrix multiplications that were performed. - Increase the default choice of
Options::workto be equal to the requested number of singular triplets (or 7, whichever is larger). This improves convergence at the cost of greater memory usage. - Switch to modified Gram-Schmidt orthogonalization for a small speed boost.
- Switch to Eigen's
BDCSVDclass for the internal SVD, which is much faster for largenumber + work. - Switch to an unset
std::optionalforOptions::singular_value_ratio_toleranceandOptions::invariant_subset_tolerance, which is more understandable than the negative sentinel value that we were previously using. - Improve efficiency of multiplication in
ParallelSparseMatrix. This has the side-effect of giving (very slightly) different results depending on the specified number of threads, due to differences in the error of reordered floating-point summations.
v3.0.1
v3.0.0
- Switch to Eigen 5.0.0.
- Overhaul the
Matrixinterfaces to support both compile- and run-time polymorphism. - Renamed
compute()overload topca()with its dedicated return structPcaResults. - Template the
Optionsand turninitinto anoptional<EigenVector_>for safety.
v2.0.2
- Fixed templating of
Centeredin thecompute()overload when scaling and/or centering is requested. This would cause compile-time errors in most cases, except if a sparse Eigen matrix was supplied, in which case it would introduce a run-time dangling reference due to an automatic cast to a temporaryEigen::MatrixXd.
v2.0.1
v2.0.0
Major refactor to use a more functional style. The irlba::Irlba class has been replaced with a regular function irlba::compute(), with options being passed in via irlba::Options. This is probably more intuitive than the parameter setters and Defaults options.
Also templated the various Eigen parameters so that users can choose between doubles and floats.