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::{
32 argmax, argmin, cumprod, cumsum, max, max_into, max_with, mean, mean_as_f64, mean_into,
33 mean_where, min, min_into, min_with, prod, prod_into, prod_with, std_, std_into, sum,
34 sum_as_f64, sum_into, sum_with, var, var_into,
35};
36
37// Quantile-based
38pub use reductions::quantile::{
39 QuantileMethod, median, nanmedian, nanpercentile, nanquantile, percentile,
40 percentile_with_method, quantile, quantile_with_method,
41};
42
43// NaN-aware reductions
44pub use reductions::nan_aware::{
45 nancumprod, nancumsum, nanmax, nanmean, nanmin, nanprod, nanstd, nansum, nanvar,
46};
47
48// Correlation and covariance
49pub use correlation::{CorrelateMode, corrcoef, correlate, cov};
50
51// Histogram
52pub use histogram::{
53 Bins, bincount, bincount_u64, bincount_weighted, digitize, histogram, histogram2d, histogramdd,
54};
55
56// Sorting
57pub use sorting::{
58 Side, SortKind, argpartition, argsort, lexsort, partition, searchsorted,
59 searchsorted_with_sorter, sort,
60};
61
62// Searching
63pub use searching::{UniqueResult, count_nonzero, nonzero, unique, where_, where_condition};
64
65// Set operations
66pub use set_ops::{in1d, intersect1d, isin, setdiff1d, setxor1d, union1d};