d780ed81d7
Adds 9 new top-level / sub-modules to the Rust API only (no Python
bindings yet), with at least one analytic unit test per module.
New Rust modules:
- optimal_control::matrix_riccati (RK4 backward solver)
- timeseries_utils::nonsync_covariance (Hayashi-Yoshida)
- timeseries_utils::wavelet (Haar / Daubechies DWT and MODWT)
- risk_measures (VaR, CVaR, projected sub-gradient CVaR minimisation)
- graph::laplacian + graph::spectral_clustering (Jacobi + k-means++)
- topology (Vietoris-Rips persistent homology, bottleneck distance)
- volterra (Caputo Adams, Markovian lift, second-kind Volterra,
Fourier inversion of characteristic functions)
- signatures (truncated tensor signature, log-sig, random reservoir,
Salvi-Cass-Lyons signature kernel, shuffle product)
All previously stable APIs untouched; abi3-py38 ABI preserved.
New module tests: 29/29 passing. Pre-existing 5 unrelated failures
unchanged.
43 lines
1.0 KiB
TOML
43 lines
1.0 KiB
TOML
[package]
|
|
name = "optimiz-rs"
|
|
version = "1.1.0"
|
|
edition = "2021"
|
|
authors = ["HFThot Research Lab <contact@hfthot-lab.eu>"]
|
|
description = "High-performance optimization algorithms in Rust with Python bindings"
|
|
license = "MIT"
|
|
repository = "https://github.com/ThotDjehuty/optimiz-r"
|
|
keywords = ["optimization", "machine-learning", "statistics", "numerical", "scientific"]
|
|
categories = ["algorithms", "science", "mathematics"]
|
|
readme = "README.md"
|
|
|
|
[lib]
|
|
name = "optimizr"
|
|
crate-type = ["cdylib", "rlib"]
|
|
|
|
[dependencies]
|
|
pyo3 = { version = "0.21", features = ["extension-module", "abi3-py38"], optional = true }
|
|
numpy = { version = "0.21", optional = true }
|
|
rand = "0.8"
|
|
rand_distr = "0.4"
|
|
ndarray = "0.15"
|
|
ndarray-linalg = { version = "0.16", features = ["openblas-system"] }
|
|
num-traits = "0.2"
|
|
rayon = "1.8"
|
|
thiserror = "1.0"
|
|
ordered-float = "4.2"
|
|
statrs = "0.17"
|
|
|
|
[features]
|
|
default = []
|
|
python-bindings = ["pyo3", "numpy"]
|
|
parallel = []
|
|
|
|
[dev-dependencies]
|
|
criterion = "0.5"
|
|
approx = "0.5"
|
|
|
|
[profile.release]
|
|
opt-level = 3
|
|
lto = true
|
|
codegen-units = 1
|