1#ifndef QDTSNE_INITIALIZE_HPP
2#define QDTSNE_INITIALIZE_HPP
11#include "gaussian.hpp"
12#include "symmetrize.hpp"
26template<
int num_dim_,
typename Index_,
typename Float_>
27Status<num_dim_, Index_, Float_>
initialize(NeighborList<Index_, Float_> nn, Float_ perp,
const Options& options) {
28 compute_gaussian_perplexity(nn, perp, options.num_threads);
29 symmetrize_matrix(nn);
30 return Status<num_dim_, Index_, Float_>(std::move(nn), options);
52template<
int num_dim_,
typename Index_,
typename Float_>
56 perp =
static_cast<Float_
>(neighbors.front().size())/3;
60 return internal::initialize<num_dim_>(std::move(neighbors), perp, options);
77template<
int num_dim_,
typename Dim_,
typename Index_,
typename Float_>
80 auto neighbors = find_nearest_neighbors(prebuilt, K, options.
num_threads);
81 return internal::initialize<num_dim_>(std::move(neighbors),
static_cast<Float_
>(options.
perplexity), options);
101template<
int num_dim_,
typename Dim_,
typename Index_,
typename Float_>
Options for the t-SNE algorithm.
Status of the t-SNE iterations.
Status of the t-SNE iterations.
Definition Status.hpp:64
knncolle::NeighborList< Index_, Float_ > NeighborList
Lists of neighbors for each observation.
Definition utils.hpp:35
int perplexity_to_k(double perplexity)
Definition utils.hpp:44
Status< num_dim_, Index_, Float_ > initialize(NeighborList< Index_, Float_ > neighbors, const Options &options)
Definition initialize.hpp:53
Options for initialize().
Definition Options.hpp:14
bool infer_perplexity
Definition Options.hpp:30
int num_threads
Definition Options.hpp:109
double perplexity
Definition Options.hpp:22