signature_rs/lib.rs
1//! # signature-rs
2//!
3//! A Rust library for computing log signatures from path data.
4//!
5//! ## Quick Start
6//!
7//! ```rust
8//! use signature_rs::prelude::*;
9//! use ndarray::array;
10//! use ordered_float::NotNan;
11//!
12//! let path = array![[0.0, 0.0], [1.0, 0.5], [2.0, 1.0]];
13//! let path = path.mapv(|v| NotNan::new(v).expect("value to be a number"));
14//! let builder = LogSignatureBuilder::<ENotation>::new()
15//! .with_num_dimensions(2)
16//! .with_max_degree(3);
17//! let log_sig = builder.build_from_path(&path.view());
18//! ```
19
20pub mod log_sig;
21
22// Re-export main types for convenience
23pub use log_sig::{LogSignature, LogSignatureBuilder};
24
25// Re-export dependencies that are part of the public API
26pub use commutator_rs::{Commutator, CommutatorTerm};
27pub use lie_rs::{LieSeries, LieSeriesGenerator};
28pub use lyndon_rs::generators::{ENotation, Generator};
29pub use lyndon_rs::lyndon::{LyndonBasis, LyndonWord, Sort};
30
31/// Prelude module for imports
32pub mod prelude {
33 pub use crate::log_sig::{LogSignature, LogSignatureBuilder};
34 pub use commutator_rs::Commutator;
35 pub use lie_rs::{LieSeries, LieSeriesGenerator};
36 pub use lyndon_rs::generators::{ENotation, Generator};
37 pub use lyndon_rs::lyndon::{LyndonBasis, LyndonWord, Sort};
38}