Skip to main content

Crate fdars_core

Crate fdars_core 

Source
Expand description

§fdars-core

Core algorithms for Functional Data Analysis in Rust.

This crate provides pure Rust implementations of various FDA methods including:

  • Functional data operations (mean, derivatives, norms)
  • Depth measures (Fraiman-Muniz, modal, band, random projection, etc.)
  • Distance metrics (Lp, Hausdorff, DTW, Fourier, etc.)
  • Basis representations (B-splines, P-splines, Fourier)
  • Clustering (k-means, fuzzy c-means)
  • Smoothing (Nadaraya-Watson, local linear/polynomial regression)
  • Outlier detection
  • Regression (PCA, PLS, ridge)
  • Seasonal analysis (period estimation, peak detection, seasonal strength)
  • Detrending and decomposition for non-stationary data

§Data Layout

Functional data is represented using the FdMatrix type, a column-major matrix wrapping a flat Vec<f64> with safe (i, j) indexing and dimension tracking:

  • For n observations with m evaluation points: data[(i, j)] gives observation i at point j
  • 2D surfaces (n observations, m1 x m2 grid): stored as n x (m1*m2) matrices
  • Zero-copy column access via data.column(j), row gather via data.row(i)
  • nalgebra interop via to_dmatrix() / from_dmatrix() for SVD operations

Re-exports§

pub use matrix::FdCurveSet;
pub use matrix::FdMatrix;
pub use alignment::align_to_target;
pub use alignment::alignment_quality;
pub use alignment::amplitude_distance;
pub use alignment::amplitude_self_distance_matrix;
pub use alignment::compose_warps;
pub use alignment::elastic_align_pair;
pub use alignment::elastic_align_pair_constrained;
pub use alignment::elastic_align_pair_nd;
pub use alignment::elastic_align_pair_with_landmarks;
pub use alignment::elastic_cross_distance_matrix;
pub use alignment::elastic_decomposition;
pub use alignment::elastic_distance;
pub use alignment::elastic_distance_nd;
pub use alignment::elastic_self_distance_matrix;
pub use alignment::karcher_mean;
pub use alignment::pairwise_consistency;
pub use alignment::phase_distance_pair;
pub use alignment::phase_self_distance_matrix;
pub use alignment::reparameterize_curve;
pub use alignment::srsf_inverse;
pub use alignment::srsf_inverse_nd;
pub use alignment::srsf_transform;
pub use alignment::srsf_transform_nd;
pub use alignment::tsrvf_from_alignment;
pub use alignment::tsrvf_from_alignment_with_method;
pub use alignment::tsrvf_inverse;
pub use alignment::tsrvf_transform;
pub use alignment::tsrvf_transform_with_method;
pub use alignment::warp_complexity;
pub use alignment::warp_smoothness;
pub use alignment::AlignmentQuality;
pub use alignment::AlignmentResult;
pub use alignment::AlignmentResultNd;
pub use alignment::AlignmentSetResult;
pub use alignment::ConstrainedAlignmentResult;
pub use alignment::DecompositionResult;
pub use alignment::KarcherMeanResult;
pub use alignment::TransportMethod;
pub use alignment::TsrvfResult;
pub use helpers::cumulative_trapz;
pub use helpers::extract_curves;
pub use helpers::gradient_uniform;
pub use helpers::l2_distance;
pub use helpers::linear_interp;
pub use helpers::simpsons_weights;
pub use helpers::simpsons_weights_2d;
pub use helpers::trapz;
pub use helpers::DEFAULT_CONVERGENCE_TOL;
pub use helpers::NUMERICAL_EPS;
pub use warping::exp_map_sphere;
pub use warping::gam_to_psi;
pub use warping::inner_product_l2;
pub use warping::inv_exp_map_sphere;
pub use warping::invert_gamma;
pub use warping::l2_norm_l2;
pub use warping::normalize_warp;
pub use warping::phase_distance;
pub use warping::psi_to_gam;
pub use seasonal::autoperiod;
pub use seasonal::autoperiod_fdata;
pub use seasonal::cfd_autoperiod;
pub use seasonal::cfd_autoperiod_fdata;
pub use seasonal::hilbert_transform;
pub use seasonal::sazed;
pub use seasonal::sazed_fdata;
pub use seasonal::AutoperiodCandidate;
pub use seasonal::AutoperiodResult;
pub use seasonal::CfdAutoperiodResult;
pub use seasonal::ChangeDetectionResult;
pub use seasonal::ChangePoint;
pub use seasonal::ChangeType;
pub use seasonal::DetectedPeriod;
pub use seasonal::InstantaneousPeriod;
pub use seasonal::Peak;
pub use seasonal::PeakDetectionResult;
pub use seasonal::PeriodEstimate;
pub use seasonal::SazedComponents;
pub use seasonal::SazedResult;
pub use seasonal::StrengthMethod;
pub use landmark::detect_and_register;
pub use landmark::detect_landmarks;
pub use landmark::landmark_register;
pub use landmark::Landmark;
pub use landmark::LandmarkKind;
pub use landmark::LandmarkResult;
pub use detrend::DecomposeResult;
pub use detrend::TrendResult;
pub use simulation::EFunType;
pub use simulation::EValType;
pub use irreg_fdata::IrregFdata;
pub use irreg_fdata::KernelType;
pub use tolerance::conformal_prediction_band;
pub use tolerance::elastic_tolerance_band;
pub use tolerance::equivalence_test;
pub use tolerance::equivalence_test_one_sample;
pub use tolerance::exponential_family_tolerance_band;
pub use tolerance::fpca_tolerance_band;
pub use tolerance::scb_mean_degras;
pub use tolerance::BandType;
pub use tolerance::EquivalenceBootstrap;
pub use tolerance::EquivalenceTestResult;
pub use tolerance::ExponentialFamily;
pub use tolerance::MultiplierDistribution;
pub use tolerance::NonConformityScore;
pub use tolerance::ToleranceBand;
pub use famm::fmm;
pub use famm::fmm_predict;
pub use famm::fmm_test_fixed;
pub use famm::FmmResult;
pub use famm::FmmTestResult;
pub use function_on_scalar::fanova;
pub use function_on_scalar::fosr;
pub use function_on_scalar::fosr_fpc;
pub use function_on_scalar::predict_fosr;
pub use function_on_scalar::FanovaResult;
pub use function_on_scalar::FosrFpcResult;
pub use function_on_scalar::FosrResult;
pub use scalar_on_function::fregre_cv;
pub use scalar_on_function::fregre_lm;
pub use scalar_on_function::fregre_np_mixed;
pub use scalar_on_function::functional_logistic;
pub use scalar_on_function::predict_fregre_lm;
pub use scalar_on_function::predict_fregre_np;
pub use scalar_on_function::FregreCvResult;
pub use scalar_on_function::FregreLmResult;
pub use scalar_on_function::FregreNpResult;
pub use scalar_on_function::FunctionalLogisticResult;
pub use classification::fclassif_cv;
pub use classification::fclassif_dd;
pub use classification::fclassif_kernel;
pub use classification::fclassif_knn;
pub use classification::fclassif_lda;
pub use classification::fclassif_qda;
pub use classification::ClassifCvResult;
pub use classification::ClassifResult;
pub use gmm::gmm_cluster;
pub use gmm::gmm_em;
pub use gmm::predict_gmm;
pub use gmm::CovType;
pub use gmm::GmmClusterResult;
pub use gmm::GmmResult;
pub use streaming_depth::FullReferenceState;
pub use streaming_depth::RollingReference;
pub use streaming_depth::SortedReferenceState;
pub use streaming_depth::StreamingBd;
pub use streaming_depth::StreamingDepth;
pub use streaming_depth::StreamingFraimanMuniz;
pub use streaming_depth::StreamingMbd;

Modules§

alignment
Elastic alignment and SRSF (Square-Root Slope Function) transforms.
basis
Basis representation functions for functional data.
classification
Functional classification with mixed scalar/functional predictors.
clustering
Clustering algorithms for functional data.
depth
Depth measures for functional data.
detrend
Detrending and decomposition functions for non-stationary functional data.
famm
Functional Additive Mixed Models (FAMM).
fdata
Functional data operations: mean, center, derivatives, norms, and geometric median.
function_on_scalar
Function-on-scalar regression and functional ANOVA.
gmm
Model-based functional clustering via Gaussian mixture models.
helpers
Helper functions for numerical integration and common operations.
irreg_fdata
Irregular functional data operations.
landmark
Landmark-based registration for functional data.
matrix
Column-major matrix type for functional data analysis.
metric
Distance metrics and semimetrics for functional data.
outliers
Outlier detection for functional data.
parallel
Parallel iteration abstraction for WASM compatibility.
regression
Regression functions for functional data.
scalar_on_function
Scalar-on-function regression with mixed scalar/functional covariates.
seasonal
Seasonal time series analysis for functional data.
simulation
Simulation functions for functional data.
smoothing
Smoothing functions for functional data.
streaming_depth
Streaming / online depth computation for functional data.
tolerance
Tolerance bands for functional data.
utility
Utility functions for functional data analysis.
warping
Warping function utilities and Hilbert sphere geometry.

Macros§

iter_maybe_parallel
Macro for conditionally parallel iteration over ranges.
maybe_par_chunks_mut
Macro for parallel/sequential chunks iteration on mutable slices.
maybe_par_chunks_mut_enumerate
Macro for enumerated parallel/sequential chunks iteration.
slice_maybe_parallel
Macro for conditionally parallel reference iteration over slices.
slice_maybe_parallel_mut
Macro for conditionally parallel mutable iteration over slices.