1#ifndef QDTSNE_INITIALIZE_HPP
2#define QDTSNE_INITIALIZE_HPP
10#include "gaussian.hpp"
11#include "symmetrize.hpp"
25template<std::
size_t num_dim_,
typename Index_,
typename Float_>
26Status<num_dim_, Index_, Float_>
initialize(NeighborList<Index_, Float_> nn,
const Float_ perp,
const Options& options) {
27 compute_gaussian_perplexity(nn, perp, options.num_threads);
28 symmetrize_matrix(nn);
29 return Status<num_dim_, Index_, Float_>(std::move(nn), options);
53template<std::
size_t num_dim_,
typename Index_,
typename Float_>
57 perp =
static_cast<Float_
>(neighbors.front().size())/3;
61 return internal::initialize<num_dim_>(std::move(neighbors), perp, options);
79template<std::
size_t num_dim_,
typename Index_,
typename Input_,
typename Float_>
83 return internal::initialize<num_dim_>(std::move(neighbors),
static_cast<Float_
>(options.
perplexity), options);
104template<std::
size_t num_dim_,
typename Index_,
typename Float_,
class Matrix_>
106 const std::size_t data_dim,
107 const Index_ num_obs,
108 const Float_*
const data,
Options for the t-SNE algorithm.
Status of the t-SNE iterations.
std::unique_ptr< Prebuilt< Index_, Data_, Distance_ > > build_unique(const Matrix_ &data) const
Status of the t-SNE iterations.
Definition Status.hpp:65
NeighborList< Index_, Distance_ > find_nearest_neighbors(const Prebuilt< Index_, Data_, Distance_ > &index, int k, int num_threads=1)
knncolle::NeighborList< Index_, Float_ > NeighborList
Lists of neighbors for each observation.
Definition utils.hpp:37
Index_ perplexity_to_k(const double perplexity)
Definition utils.hpp:48
Status< num_dim_, Index_, Float_ > initialize(NeighborList< Index_, Float_ > neighbors, const Options &options)
Definition initialize.hpp:54
Options for initialize().
Definition Options.hpp:14
bool infer_perplexity
Definition Options.hpp:33
int num_threads
Definition Options.hpp:124
double perplexity
Definition Options.hpp:24