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 viadata.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;pub use helpers::gradient_nonuniform;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::gam_to_psi_smooth;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::bootstrap_ci_fregre_lm;pub use scalar_on_function::bootstrap_ci_functional_logistic;pub use scalar_on_function::fregre_basis_cv;pub use scalar_on_function::fregre_cv;pub use scalar_on_function::fregre_lm;pub use scalar_on_function::fregre_np_cv;pub use scalar_on_function::fregre_np_mixed;pub use scalar_on_function::functional_logistic;pub use scalar_on_function::model_selection_ncomp;pub use scalar_on_function::predict_fregre_lm;pub use scalar_on_function::predict_fregre_np;pub use scalar_on_function::predict_functional_logistic;pub use scalar_on_function::BootstrapCiResult;pub use scalar_on_function::FregreBasisCvResult;pub use scalar_on_function::FregreCvResult;pub use scalar_on_function::FregreLmResult;pub use scalar_on_function::FregreNpCvResult;pub use scalar_on_function::FregreNpResult;pub use scalar_on_function::FunctionalLogisticResult;pub use scalar_on_function::ModelSelectionResult;pub use scalar_on_function::SelectionCriterion;pub use explain_generic::generic_ale;pub use explain_generic::generic_anchor;pub use explain_generic::generic_conditional_permutation_importance;pub use explain_generic::generic_counterfactual;pub use explain_generic::generic_domain_selection;pub use explain_generic::generic_friedman_h;pub use explain_generic::generic_lime;pub use explain_generic::generic_pdp;pub use explain_generic::generic_permutation_importance;pub use explain_generic::generic_prototype_criticism;pub use explain_generic::generic_saliency;pub use explain_generic::generic_shap_values;pub use explain_generic::generic_sobol_indices;pub use explain_generic::generic_stability;pub use explain_generic::generic_vif;pub use explain_generic::FpcPredictor;pub use explain_generic::TaskType;pub use elastic_explain::elastic_pcr_attribution;pub use elastic_explain::ElasticAttributionResult;pub use explain::anchor_explanation;pub use explain::anchor_explanation_logistic;pub use explain::beta_decomposition;pub use explain::beta_decomposition_logistic;pub use explain::calibration_diagnostics;pub use explain::conditional_permutation_importance;pub use explain::conditional_permutation_importance_logistic;pub use explain::conformal_prediction_residuals;pub use explain::counterfactual_logistic;pub use explain::counterfactual_regression;pub use explain::dfbetas_dffits;pub use explain::domain_selection;pub use explain::domain_selection_logistic;pub use explain::expected_calibration_error;pub use explain::explanation_stability;pub use explain::explanation_stability_logistic;pub use explain::fpc_ale;pub use explain::fpc_ale_logistic;pub use explain::fpc_permutation_importance;pub use explain::fpc_permutation_importance_logistic;pub use explain::fpc_shap_values;pub use explain::fpc_shap_values_logistic;pub use explain::fpc_vif;pub use explain::fpc_vif_logistic;pub use explain::friedman_h_statistic;pub use explain::friedman_h_statistic_logistic;pub use explain::functional_pdp;pub use explain::functional_pdp_logistic;pub use explain::functional_saliency;pub use explain::functional_saliency_logistic;pub use explain::influence_diagnostics;pub use explain::lime_explanation;pub use explain::lime_explanation_logistic;pub use explain::loo_cv_press;pub use explain::pointwise_importance;pub use explain::pointwise_importance_logistic;pub use explain::prediction_intervals;pub use explain::prototype_criticism;pub use explain::regression_depth;pub use explain::regression_depth_logistic;pub use explain::significant_regions;pub use explain::significant_regions_from_se;pub use explain::sobol_indices;pub use explain::sobol_indices_logistic;pub use explain::AleResult;pub use explain::AnchorCondition;pub use explain::AnchorResult;pub use explain::AnchorRule;pub use explain::BetaDecomposition;pub use explain::CalibrationDiagnosticsResult;pub use explain::ConditionalPermutationImportanceResult;pub use explain::ConformalPredictionResult;pub use explain::CounterfactualResult;pub use explain::DepthType;pub use explain::DfbetasDffitsResult;pub use explain::DomainSelectionResult;pub use explain::EceResult;pub use explain::FpcPermutationImportance;pub use explain::FpcShapValues;pub use explain::FriedmanHResult;pub use explain::FunctionalPdpResult;pub use explain::FunctionalSaliencyResult;pub use explain::ImportantInterval;pub use explain::InfluenceDiagnostics;pub use explain::LimeResult;pub use explain::LooCvResult;pub use explain::PointwiseImportanceResult;pub use explain::PredictionIntervalResult;pub use explain::PrototypeCriticismResult;pub use explain::RegressionDepthResult;pub use explain::SignificanceDirection;pub use explain::SignificantRegion;pub use explain::SobolIndicesResult;pub use explain::StabilityAnalysisResult;pub use explain::VifResult;pub use classification::fclassif_cv;pub use classification::fclassif_dd;pub use classification::fclassif_kernel;pub use classification::fclassif_knn;pub use classification::fclassif_knn_fit;pub use classification::fclassif_lda;pub use classification::fclassif_lda_fit;pub use classification::fclassif_qda;pub use classification::fclassif_qda_fit;pub use classification::ClassifCvResult;pub use classification::ClassifFit;pub use classification::ClassifMethod;pub use classification::ClassifResult;pub use conformal::conformal_classif;pub use conformal::conformal_elastic_logistic;pub use conformal::conformal_elastic_pcr;pub use conformal::conformal_elastic_regression;pub use conformal::conformal_fregre_lm;pub use conformal::conformal_fregre_np;pub use conformal::conformal_generic_classification;pub use conformal::conformal_generic_regression;pub use conformal::conformal_logistic;pub use conformal::cv_conformal_classification;pub use conformal::cv_conformal_regression;pub use conformal::jackknife_plus_regression;pub use conformal::ClassificationScore;pub use conformal::ConformalClassificationResult;pub use conformal::ConformalMethod;pub use conformal::ConformalRegressionResult;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;pub use smooth_basis::basis_nbasis_cv;pub use smooth_basis::bspline_penalty_matrix;pub use smooth_basis::fourier_penalty_matrix;pub use smooth_basis::smooth_basis;pub use smooth_basis::smooth_basis_gcv;pub use smooth_basis::BasisCriterion;pub use smooth_basis::BasisNbasisCvResult;pub use smooth_basis::BasisType;pub use smooth_basis::FdPar;pub use smooth_basis::SmoothBasisResult;pub use elastic_fpca::horiz_fpca;pub use elastic_fpca::joint_fpca;pub use elastic_fpca::vert_fpca;pub use elastic_fpca::HorizFpcaResult;pub use elastic_fpca::JointFpcaResult;pub use elastic_fpca::VertFpcaResult;pub use elastic_regression::elastic_logistic;pub use elastic_regression::elastic_pcr;pub use elastic_regression::elastic_regression;pub use elastic_regression::predict_elastic_logistic;pub use elastic_regression::predict_elastic_regression;pub use elastic_regression::ElasticLogisticResult;pub use elastic_regression::ElasticPcrResult;pub use elastic_regression::ElasticRegressionResult;pub use elastic_regression::PcaMethod;pub use elastic_changepoint::elastic_amp_changepoint;pub use elastic_changepoint::elastic_fpca_changepoint;pub use elastic_changepoint::elastic_ph_changepoint;pub use elastic_changepoint::ChangepointResult;pub use elastic_changepoint::ChangepointType;pub use elastic_changepoint::CovKernel;pub use elastic_changepoint::FpcaChangepointMethod;pub use cv::create_folds;pub use cv::create_stratified_folds;pub use cv::cv_fdata;pub use cv::fold_indices;pub use cv::subset_rows;pub use cv::subset_vec;pub use cv::CvFdataResult;pub use cv::CvMetrics;pub use cv::CvType;pub use smoothing::cv_smoother;pub use smoothing::gcv_smoother;pub use smoothing::knn_gcv;pub use smoothing::knn_lcv;pub use smoothing::optim_bandwidth;pub use smoothing::CvCriterion;pub use smoothing::KnnCvResult;pub use smoothing::OptimBandwidthResult;
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.
- conformal
- Conformal prediction intervals and prediction sets.
- cv
- Cross-validation utilities and unified CV framework.
- depth
- Depth measures for functional data.
- detrend
- Detrending and decomposition functions for non-stationary functional data.
- elastic_
changepoint - Elastic changepoint detection for functional data streams.
- elastic_
explain - Elastic shape explainability: amplitude vs phase attribution.
- elastic_
fpca - Vertical, horizontal, and joint FPCA for elastic functional data.
- elastic_
regression - Elastic regression models (alignment-integrated regression).
- explain
- Explainability toolkit for FPC-based scalar-on-function models.
- explain_
generic - Generic explainability for any FPC-based model.
- 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.
- smooth_
basis - Basis-penalized smoothing with continuous derivative penalties.
- 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.