What's Changed
- Preserve input dtype in transform and fit_transform output by @sebastianbreguel in #1253
- Add py.typed marker for type checkers by @sebastianbreguel in #1252
- Fix _select_font_color ValueError on hex backgrounds by @sebastianbreguel in #1251
- Remove fastmath=True from layouts.py optimization functions by @sebastianbreguel in #1255
- Update pipelines to use uv and turn off macOS builds by @gclendenning in #1258
- Vectorize Delaunay adjacency matrix in inverse_transform (~2700x faster, 50% less RAM) by @sebastianbreguel in #1260
- Use np.arange instead of list(range) for index/inverse in fit() by @sebastianbreguel in #1261
- Use argpartition instead of argsort for sparse precomputed KNN in fit() by @sebastianbreguel in #1262
- Vectorize densmap density computation in simplicial_set_embedding() by @sebastianbreguel in #1263
- Optimize BFS and init_graph_transform in fit/transform pipeline by @sebastianbreguel in #1264
- JIT-compile embedding density loop in simplicial_set_embedding() by @sebastianbreguel in #1268
- Use argpartition instead of argsort for dense precomputed KNN in transform() by @sebastianbreguel in #1267
- Use argpartition instead of argsort for sparse precomputed KNN in transform() by @sebastianbreguel in #1266
- Use deque and bool array in breadth_first_search() for O(V+E) BFS by @sebastianbreguel in #1265
- Vectorize expand_relations() with dict lookup arrays in AlignedUMAP by @sebastianbreguel in #1270
- Speed up build_neighborhood_similarities by precomputing relation membership by @sebastianbreguel in #1272
- Reduce redundant allocations in sparse KNN, AlignedUMAP and ParametricUMAP by @sebastianbreguel in #1271
- Use argpartition for O(n) selection in fast_knn_indices by @sebastianbreguel in #1273
- Vectorize average-linkage component_layout with grouped matmul by @sebastianbreguel in #1274
- Reduce peak memory in fit/transform without changing embeddings by @sebastianbreguel in #1275
- Fix NaN gradients in parametric UMAP loss under XLA (#1200, #1211) by @jacobgolding in #1283
- Avoid mutating sparse inputs for empty unions by @pttydou in #1285
- Fix smooth_knn_dist giving sigma = inf for points with a disconnected neighbour by @cindykrafft in #1287
- Fix transform() refusing precomputed distances when fit used the NN-descent path by @cindykrafft in #1288
- Fix invalid escape sequence SyntaxWarning in torus example by @MBK-fr in #1289
- Loop numba metrics in numba for the small-data distance matrix without changing embeddings by @sebastianbreguel in #1291
- Restore stable tie-breaking in fast_knn_indices (revert #1273) by @sebastianbreguel in #1292
- Fix csr_unique when every sparse row has the same number of non-zeros by @MohammadHijjawi97 in #1293
- Stop AlignedUMAP.update from mutating the caller's relations and params by @MohammadHijjawi97 in #1294
- Fix symmetric_kl_grad gradient and stop symmetric_kl mutating its inputs by @MohammadHijjawi97 in #1295
- Use the model's metric in plot diagnostics for small datasets by @MohammadHijjawi97 in #1296
- Fix transform and inverse_transform when n_epochs is a list by @MohammadHijjawi97 in #1297
- Fix division by zero and scaling in UMAP.update initialisation by @raashish1601 in #1300
- Fix spectral initialisation for very small datasets by @raashish1601 in #1301
- Fix out-of-bounds read in trustworthiness_vector by @raashish1601 in #1299
- Fix transform() when the input sparsity differs from the fitted data by @raashish1601 in #1302
- Fix Gaussian energy covariance gradients by @zhechen-cs in #1311
- Avoid NaN Hellinger distances for proportional inputs by @zhechen-cs in #1312
- Respect keyword arguments for named special metrics by @ktz03 in #1308
- Fix AlignedUMAP with per-model n_epochs and update() with a new n_epochs by @raashish1601 in #1306
- Compute complete and single linkage component distances in one pass per component by @sebastianbreguel in #1324
- Initial migration to github actions and remove old CI/CD artifacts by @gclendenning in #1323
- 0.6 development: new init and optimizer pipelines by @lmcinnes in #1327
New Contributors
- @sebastianbreguel made their first contribution in #1253
- @pttydou made their first contribution in #1285
- @cindykrafft made their first contribution in #1287
- @MBK-fr made their first contribution in #1289
- @MohammadHijjawi97 made their first contribution in #1293
- @raashish1601 made their first contribution in #1300
- @zhechen-cs made their first contribution in #1311
- @ktz03 made their first contribution in #1308
Full Changelog: release-0.5.12...release-0.6.0rc1