1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
//! Kernel density estimation in Rust.
//!
//! Kernel density estimation (KDE) is a non-parametric method to estimate the probability
//! density function of a random variable by taking the summation of kernel functions centered
//! on each data point. This crate serves three major purposes based on this idea:
//! 1) Evaluate the probability density function of a random variable.
//! 2) Evaluate the cumulative distribution function of a random variable.
//! 3) Sample data points from the probability density function.
//!
//! An excellent technical description of the method is available
//! [here](https://bookdown.org/egarpor/NP-UC3M/kde-i.html)[^citation].
//!
//! [^citation]: García-Portugués, E. (2022). Notes for Nonparametric Statistics.
//! Version 6.5.9. ISBN 978-84-09-29537-1.

#[warn(missing_docs)]
pub mod bandwidth;
pub mod float;
mod internal;
pub mod kde;
pub mod kernel;

pub mod prelude {
    //! `use kernel_density_estimation::prelude::*;` to import all common functionality.

    pub use crate::bandwidth::scott::Scott;
    pub use crate::bandwidth::silverman::Silverman;
    pub use crate::bandwidth::Bandwidth;

    pub use crate::float::KDEFloat;

    pub use crate::kde::univariate::UnivariateKDE;
    pub use crate::kde::KernelDensityEstimator;

    pub use crate::kernel::cosine::Cosine;
    pub use crate::kernel::epanechnikov::Epanechnikov;
    pub use crate::kernel::logistic::Logistic;
    pub use crate::kernel::normal::Normal;
    pub use crate::kernel::quartic::Quartic;
    pub use crate::kernel::sigmoid::Sigmoid;
    pub use crate::kernel::silverman::SilvermanKernel;
    pub use crate::kernel::triangular::Triangular;
    pub use crate::kernel::tricube::Tricube;
    pub use crate::kernel::triweight::Triweight;
    pub use crate::kernel::uniform::Uniform;
    pub use crate::kernel::Kernel;
}