vec_utilities/lib.rs
1//! # Vec Utilities
2//!
3//! `vec-utilites` is a collection of tools which make working with `Vec` of
4//! floats easier
5//!
6//! ## Motivation
7//!
8//! In Rust, since `f32` and `f64` strictly adhere to the float definition
9//! standards, and Rust avoids all unexpected behaviour, working with Vecs of
10//! floats can be challenging. For instance, since floats do not implement
11//! `Ord` in Rust (due to `NaN`) then there is no built in way to get the largest
12//! value in a `Vec` of floats.
13//!
14//! This crate offers some "common sense" implementation of common operations
15//!
16//! ## How This Crate is Organised
17//!
18//! The crate has the following modules
19//!
20//! - `filters`
21//! - `generation`
22//! - `maths`
23//! - `running`
24//!
25//! ### `filters`
26//!
27//! This is where you can find some ready made filters, for example, removing NaN
28//! from the Vec
29//!
30//! ### `generation`
31//!
32//! `generation` focuses on generating Vecs of floats, typically for the purpose
33//! of iteration. For instance, you can find an `arange` function here
34//!
35//! ### `maths`
36//!
37//! `maths` contains statistical properties of Vecs - largest and smallest values,
38//! means, medians and so on
39//!
40//! ### `running`
41//!
42//! `running` contains iterators, like running means and running sums
43
44pub mod filters;
45pub mod generation;
46pub mod maths;
47pub mod running;
48
49// TODO: https://stackoverflow.com/questions/68449860/how-to-make-a-general-function-that-groups-an-generic-intoiterators-items-in?rq=3