The Principal Dev – Masterclass for Tech Leads

The Principal Dev – Masterclass for Tech Leads28-29 May

Join

Functional Data Analysis (FDA)

Rust CI Crates.io Documentation codecov License: MIT

High-performance Functional Data Analysis tools implemented in Rust with R bindings.

Packages

Package Language Registry Folder Status
fdars R CRAN sipemu/fdars-r CRAN status
fdars-core Rust crates.io fdars-core/ Crates.io

Features

Installation

R (fdars)

# From GitHub (requires Rust toolchain)
devtools::install_github("sipemu/fdars-r")

# From binary release (no Rust required)
# Download from GitHub Releases, then:
install.packages("path/to/fdars_x.y.z.tgz", repos = NULL, type = "mac.binary")  # macOS
install.packages("path/to/fdars_x.y.z.zip", repos = NULL, type = "win.binary")  # Windows

Rust (fdars-core)

[dependencies]
fdars-core = "0.3"

Or install from the repository:

[dependencies]
fdars-core = { git = "https://github.com/sipemu/fdars" }

Feature Flags

For WASM builds, disable default features:

[dependencies]
fdars-core = { version = "0.3", default-features = false }

Data Layout

Functional data is represented as column-major matrices stored in flat Vec<f64>:

Quick Start

use fdars_core::{fdata, depth, helpers};

// Create sample functional data (3 observations, 10 points each)
let n = 3;
let m = 10;
let data: Vec<f64> = (0..(n * m)).map(|i| (i as f64).sin()).collect();
let argvals: Vec<f64> = (0..m).map(|i| i as f64 / (m - 1) as f64).collect();

// Compute mean function
let mean = fdata::mean_1d(&data, n, m);

// Compute Fraiman-Muniz depth
let depths = depth::fraiman_muniz_1d(&data, &data, n, n, m, true);

Examples

The fdars-core/examples/ directory contains 14 runnable examples progressing from basic to advanced:

# Example Command Topics
01 Simulation cargo run -p fdars-core --example simulation KL expansion, eigenfunctions, noise
02 Functional Operations cargo run -p fdars-core --example functional_operations Mean, centering, derivatives, norms, inner products
03 Smoothing cargo run -p fdars-core --example smoothing Nadaraya-Watson, local linear/polynomial, k-NN
04 Basis Representation cargo run -p fdars-core --example basis_representation B-splines, Fourier, P-splines, GCV/AIC/BIC
05 Depth Measures cargo run -p fdars-core --example depth_measures 8 depth measures, outlier ranking
06 Distances and Metrics cargo run -p fdars-core --example distances_and_metrics Lp, Hausdorff, DTW, Fourier, h-shift
07 Clustering cargo run -p fdars-core --example clustering K-means, fuzzy c-means, silhouette, CH index
08 Regression cargo run -p fdars-core --example regression FPCA, PLS regression
09 Outlier Detection cargo run -p fdars-core --example outlier_detection LRT bootstrap, depth confirmation
10 Seasonal Analysis cargo run -p fdars-core --example seasonal_analysis FFT, ACF, Autoperiod, SAZED, peak detection
11 Detrending cargo run -p fdars-core --example detrending Linear/polynomial/LOESS, STL decomposition
12 Streaming Depth cargo run -p fdars-core --example streaming_depth Online depth, rolling windows
13 Irregular Data cargo run -p fdars-core --example irregular_data CSR storage, regularization, kernel mean
14 Complete Pipeline cargo run -p fdars-core --example complete_pipeline End-to-end: simulate → smooth → outliers → FPCA → cluster

Performance

With the parallel feature (enabled by default), computationally intensive operations use rayon for multi-core performance. The library also supports WASM targets with sequential execution.

Documentation

License

MIT

Join libs.tech

...and unlock some superpowers

GitHub

We won't share your data with anyone else.