Skip to main content

ferray_stats/
lib.rs

1// ferray-stats: Statistical functions, reductions, sorting, searching,
2// set operations, histograms, correlations, and covariance.
3//
4// This crate provides NumPy-equivalent statistical functions as free functions
5// operating on ferray-core's `Array<T, D>` type. All public functions return
6// `FerrayResult<T>` and never panic.
7//
8// # Modules
9// - `reductions`: sum, prod, min, max, argmin, argmax, mean, var, std, median,
10//   percentile, quantile, cumsum, cumprod, and NaN-aware variants.
11// - `correlation`: correlate, corrcoef, cov.
12// - `histogram`: histogram, histogram2d, histogramdd, bincount, digitize.
13// - `sorting`: sort, argsort, searchsorted.
14// - `searching`: unique, nonzero, where_, count_nonzero.
15// - `set_ops`: union1d, intersect1d, setdiff1d, setxor1d, in1d, isin.
16// - `parallel`: Rayon threshold dispatch for large array operations.
17
18pub mod correlation;
19pub mod histogram;
20pub mod parallel;
21pub mod reductions;
22pub mod searching;
23pub mod set_ops;
24pub mod sorting;
25
26// ---------------------------------------------------------------------------
27// Flat re-exports for ergonomic use
28// ---------------------------------------------------------------------------
29
30// Reductions
31pub use reductions::{argmax, argmin, cumprod, cumsum, max, mean, min, prod, std_, sum, var};
32
33// Quantile-based
34pub use reductions::quantile::{median, nanmedian, nanpercentile, percentile, quantile};
35
36// NaN-aware reductions
37pub use reductions::nan_aware::{
38    nancumprod, nancumsum, nanmax, nanmean, nanmin, nanprod, nanstd, nansum, nanvar,
39};
40
41// Correlation and covariance
42pub use correlation::{CorrelateMode, corrcoef, correlate, cov};
43
44// Histogram
45pub use histogram::{Bins, bincount, digitize, histogram, histogram2d, histogramdd};
46
47// Sorting
48pub use sorting::{Side, SortKind, argsort, searchsorted, sort};
49
50// Searching
51pub use searching::{UniqueResult, count_nonzero, nonzero, unique, where_};
52
53// Set operations
54pub use set_ops::{in1d, intersect1d, isin, setdiff1d, setxor1d, union1d};