One LOESS to Rule Them All: Rebuilding a Classic Smoother in Rust
Описание и применение
Rust‑реализация LOESS, совместимая с R, но с расширенным набором параметров и ускоренная до 236×.
Задача
Existing LOESS implementations are legacy, limited in features, and hard to extend or optimize.
Результат
The Rust implementation matches R’s loess to within 1e-12, offers a richer feature set, and is dramatically faster (47× serial, 236× parallel).
Рабочий процесс
- Validate against R’s loess to ensure numerical equivalence (max diff <1e-12).
- Design the core as a layered, modular architecture with swappable components.
- Implement performance optimizations: parallelism via fastLoess and SIMD via wide crate.
- Create bindings for R, Python, Julia, Node.js, WebAssembly, C++, Go, and Java so all ecosystems use the same engine.
- Publish benchmarks and CI checks against R’s loess.
Доказательства
The project validates against R's loess, and the README reports a maximum difference below 1e-12 across the test scenarios.
On the project's benchmark harness against R's stats::loess, the README reports roughly 47x in serial mode and 236x in parallel mode.
- Дата записи: 2026-10-10T23:41:59.225Z