Releases: libscran/umappp
Releases · libscran/umappp
v3.3.1
v3.3.0
- Updates to use the latest version of irlba, which provides some performance improvements.
- Added
Options::num_threads_spectralso that users can explicitly control the number of threads used in spectral initialization. This is required as a different number of threads will slightly change the floating-point results in irlba; users should leave this at 1 if they want consistency between the serial results and multi-threading in other parts of umappp. - Converted
Options::parallel_optimizationtoOptions::num_threads_optimizefor consistency and to provide more flexibility. Specifically, the best number of threads for spin-lock parallelization may not be the same as the number of threads elsewhere in umappp.
v3.2.1
v3.2.0
v3.1.0
- Minor change to the negative sampling to be more consistent with the original uwot code. Specifically, we account for integer truncation when updating the
epoch_to_next_negative_samplefromnum_neg_samples. - Added more options to control initialization of the embedding. This includes the scaling of the initial coordinates, the seed of the PRNG, and whether to jitter after spectral initialization (for consistency with uwot).
Status::run()now requires the embedding array as an explicit argument, rather than holding onto the pointer frominitialize(). This reduces the risk of dangling pointers inside theStatusobject.- Optional parameters (namely
a,bandnum_epochs) are now represented bystd::optionalwrappers instead of relying on sentinel values to indicate that they are unset. - Added options to control IRLBA during spectral initialization.
- Check for IRLBA convergence to determine if spectral initialization was successful.