sliding-quantile 0.1.0

Moving quantile over a sliding window of size N with O(1) queries, O(log N) updates, and O(N) memory.
Documentation
/// Convenient type aliases for [`Quantile`s](crate::Quantile)
/// backed by heap-allocated [`Vec`s](alloc::vec::Vec).
#[cfg(any(feature = "std", feature = "alloc"))]
#[cfg_attr(docsrs, doc(cfg(any(feature = "std", feature = "alloc"))))]
pub mod vec {
    /// [`Quantile`](crate::Quantile) backed by heap-allocated [`Vec`s](alloc::vec::Vec).
    pub type Quantile<Num> = crate::Quantile<Num, alloc::vec::Vec<Num>, alloc::vec::Vec<usize>>;

    pub mod f32 {
        /// [`Quantile`](crate::Quantile)  for [`f32`] data,
        /// backed by heap-allocated [`Vec`s](alloc::vec::Vec).
        pub type Quantile = super::Quantile<f32>;
    }
    pub mod f64 {
        /// [`Quantile`](crate::Quantile)  for [`f64`] data,
        /// backed by heap-allocated [`Vec`s](alloc::vec::Vec).
        pub type Quantile = super::Quantile<f64>;
    }
}

/// Convenient type aliases for [`Quantile`s](crate::Quantile)
/// backed by stack-allocated [arrays](prim@array).
#[cfg_attr(docsrs, doc(cfg(any(feature = "std", feature = "libm"))))]
pub mod array {
    /// [`Quantile`](crate::Quantile) backed by stack-allocated [arrays](prim@array).
    pub type Quantile<Num, const WIN_SIZE: usize> =
        crate::Quantile<Num, [Num; WIN_SIZE], [usize; WIN_SIZE]>;

    pub mod f32 {
        /// [`Quantile`](crate::Quantile) for [`f32`] data,
        /// backed by stack-allocated [arrays](prim@array).
        pub type Quantile<const WIN_SIZE: usize> = super::Quantile<f32, WIN_SIZE>;
    }
    pub mod f64 {
        /// [`Quantile`](crate::Quantile) for [`f64`] data,
        /// backed by stack-allocated [arrays](prim@array).
        pub type Quantile<const WIN_SIZE: usize> = super::Quantile<f64, WIN_SIZE>;
    }
}