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 48 49 50 51 52 53 54 55 56
//! Histogram support for n-dimensional arrays ([`ndarray`]).
//!
//! # Features
//!
//! * `rayon` for parallel sorting and bulk-selection as part of histogram computations.
#![deny(
missing_docs,
rustdoc::broken_intra_doc_links,
rustdoc::missing_crate_level_docs
)]
#![cfg_attr(docsrs, feature(doc_auto_cfg))]
pub use crate::histogram::HistogramExt;
pub use crate::maybe_nan::{n32, n64, o32, o64, MaybeNan, MaybeNanExt, N32, N64, O32, O64};
pub use crate::quantile::{interpolate, Quantile1dExt, QuantileExt};
pub use ndarray;
#[macro_use]
mod private {
/// This is a public type in a private module, so it can be included in
/// public APIs, but other crates can't access it.
pub struct PrivateMarker;
/// Defines an associated function for a trait that is impossible for other
/// crates to implement. This makes it possible to add new associated
/// types/functions/consts/etc. to the trait without breaking changes.
macro_rules! private_decl {
() => {
/// This method makes this trait impossible to implement outside of
/// `ndarray-stats` so that we can freely add new methods, etc., to
/// this trait without breaking changes.
///
/// We don't anticipate any other crates needing to implement this
/// trait, but if you do have such a use-case, please let us know.
///
/// **Warning** This method is not considered part of the public
/// API, and client code should not rely on it being present. It
/// may be removed in a non-breaking release.
fn __private__(&self, _: crate::private::PrivateMarker);
};
}
/// Implements the associated function defined by `private_decl!`.
macro_rules! private_impl {
() => {
fn __private__(&self, _: crate::private::PrivateMarker) {}
};
}
}
pub mod errors;
pub mod histogram;
mod maybe_nan;
mod quantile;