pub use crate::data::graph::UmapGraphParams;
pub use crate::data::init::{initialise_embedding, parse_initilisation};
pub use crate::data::nearest_neighbours::{
parse_ann_search, run_ann_search, NearestNeighbourParams,
};
pub use crate::data::pacmap_pairs::PacmapPairs;
pub use crate::data::structures::CoordinateList;
pub use crate::data::synthetic::*;
pub use crate::errors::ManifoldsError;
pub use crate::training::mds_optimiser::{parse_mds_method, MdsMethod};
pub use crate::training::pacmap_optimiser::{parse_pacmap_optimiser, PacmapOptimParams};
pub use crate::training::tsne_optimiser::TsneOptimParams;
pub use crate::training::umap_optimisers::UmapOptimParams;
pub use crate::utils::diffusions::PhateDiffusionParams;
pub use crate::utils::diffusions::{parse_landmark_method, LandmarkMethod, PhateTime};
pub use crate::utils::math::landmark_von_neumann_entropy;
pub use crate::utils::potentials::calculate_potential;
pub use crate::utils::traits::ManifoldsFloat;
#[cfg(feature = "gpu")]
pub use crate::data::nearest_neighbours_gpu::*;
#[cfg(feature = "parametric")]
pub use crate::parametric::model::TrainedUmapModel;
#[cfg(feature = "parametric")]
pub use crate::parametric::parametric_train::TrainParametricParams;
pub type ManifoldsKnnResults<T> = Result<(Vec<Vec<usize>>, Vec<Vec<T>>), ManifoldsError>;
pub type UmapGraphResults<T> =
Result<(CoordinateList<T>, Vec<Vec<usize>>, Vec<Vec<T>>), ManifoldsError>;
#[cfg(feature = "parametric")]
pub type ParametricUmapResults<B, T> =
Result<(Vec<Vec<T>>, TrainedUmapModel<B, T>), ManifoldsError>;
#[derive(Clone, Copy, Debug, Default)]
pub enum Verbosity {
#[default]
Quiet,
Normal,
Detailed,
}
impl Verbosity {
pub fn normal_verbosity(&self) -> bool {
matches!(self, Verbosity::Normal | Verbosity::Detailed)
}
pub fn detailed_verbosity(&self) -> bool {
matches!(self, Verbosity::Detailed)
}
}
pub fn parse_verbosity_level(level: usize) -> Verbosity {
match level {
0 => Verbosity::Quiet,
1 => Verbosity::Normal,
2 => Verbosity::Detailed,
_ => Verbosity::Quiet,
}
}