umap.hpp
Go to the documentation of this file.
1 /*
2  * SPDX-FileCopyrightText: Copyright (c) 2019-2025, NVIDIA CORPORATION.
3  * SPDX-License-Identifier: Apache-2.0
4  */
5 
6 #pragma once
7 
9 
10 #include <raft/core/host_coo_matrix.hpp>
11 #include <raft/sparse/coo.hpp>
12 
13 #include <rmm/device_buffer.hpp>
14 
15 #include <cstddef>
16 #include <cstdint>
17 #include <memory>
18 
19 namespace raft {
20 class handle_t;
21 } // namespace raft
22 
23 namespace ML {
24 class UMAPParams;
25 namespace UMAP {
26 
34 void find_ab(const raft::handle_t& handle, UMAPParams* params);
35 
49 std::unique_ptr<raft::sparse::COO<float, int>> get_graph(const raft::handle_t& handle,
50  float* X, // input matrix
51  float* y, // labels
52  int n,
53  int d,
54  int64_t* knn_indices,
55  float* knn_dists,
57 
71 void refine(const raft::handle_t& handle,
72  float* X,
73  int n,
74  int d,
75  raft::sparse::COO<float, int>* graph,
77  float* embeddings);
78 
92 void init_and_refine(const raft::handle_t& handle,
93  float* X,
94  int n,
95  int d,
96  raft::sparse::COO<float, int>* graph,
98  float* embeddings);
99 
115 void fit(const raft::handle_t& handle,
116  float* X,
117  float* y,
118  int n,
119  int d,
120  int64_t* knn_indices,
121  float* knn_dists,
123  std::unique_ptr<rmm::device_buffer>& embeddings,
124  raft::host_coo_matrix<float, int, int, uint64_t>& graph);
125 
144 void fit_sparse(const raft::handle_t& handle,
145  int* indptr,
146  int* indices,
147  float* data,
148  size_t nnz,
149  float* y,
150  int n,
151  int d,
152  int* knn_indices,
153  float* knn_dists,
155  std::unique_ptr<rmm::device_buffer>& embeddings,
156  raft::host_coo_matrix<float, int, int, uint64_t>& graph);
157 
172 void transform(const raft::handle_t& handle,
173  float* X,
174  int n,
175  int d,
176  float* orig_X,
177  int orig_n,
178  float* embedding,
179  int embedding_n,
181  float* transformed);
182 
203 void transform_sparse(const raft::handle_t& handle,
204  int* indptr,
205  int* indices,
206  float* data,
207  size_t nnz,
208  int n,
209  int d,
210  int* orig_x_indptr,
211  int* orig_x_indices,
212  float* orig_x_data,
213  size_t orig_nnz,
214  int orig_n,
215  float* embedding,
216  int embedding_n,
218  float* transformed);
219 
220 } // namespace UMAP
221 } // namespace ML
Definition: umapparams.h:64
Definition: params.hpp:23
void refine(const raft::handle_t &handle, float *X, int n, int d, raft::sparse::COO< float, int > *graph, UMAPParams *params, float *embeddings)
std::unique_ptr< raft::sparse::COO< float, int > > get_graph(const raft::handle_t &handle, float *X, float *y, int n, int d, int64_t *knn_indices, float *knn_dists, UMAPParams *params)
void init_and_refine(const raft::handle_t &handle, float *X, int n, int d, raft::sparse::COO< float, int > *graph, UMAPParams *params, float *embeddings)
void fit_sparse(const raft::handle_t &handle, int *indptr, int *indices, float *data, size_t nnz, float *y, int n, int d, int *knn_indices, float *knn_dists, UMAPParams *params, std::unique_ptr< rmm::device_buffer > &embeddings, raft::host_coo_matrix< float, int, int, uint64_t > &graph)
void fit(const raft::handle_t &handle, float *X, float *y, int n, int d, int64_t *knn_indices, float *knn_dists, UMAPParams *params, std::unique_ptr< rmm::device_buffer > &embeddings, raft::host_coo_matrix< float, int, int, uint64_t > &graph)
void find_ab(const raft::handle_t &handle, UMAPParams *params)
void transform_sparse(const raft::handle_t &handle, int *indptr, int *indices, float *data, size_t nnz, int n, int d, int *orig_x_indptr, int *orig_x_indices, float *orig_x_data, size_t orig_nnz, int orig_n, float *embedding, int embedding_n, UMAPParams *params, float *transformed)
void transform(const raft::handle_t &handle, float *X, int n, int d, float *orig_X, int orig_n, float *embedding, int embedding_n, UMAPParams *params, float *transformed)
Definition: dbscan.hpp:18
Definition: dbscan.hpp:14