1#![allow(clippy::needless_range_loop)]
61#![allow(clippy::too_many_arguments)]
62#![allow(clippy::type_complexity)]
63
64pub mod error;
65pub(crate) mod linalg;
66pub mod matrix;
67pub mod parallel;
68
69pub use error::FdarError;
70
71#[cfg(test)]
72pub(crate) mod test_helpers;
73
74pub mod alignment;
75pub mod andrews;
76
77pub mod basis;
79pub mod classification;
80pub mod clustering;
81pub mod clustering_advanced;
82pub mod concurrent_regression;
83pub mod cv;
84pub mod density_fda;
85pub mod depth;
86pub mod detrend;
87pub mod distance;
88pub mod famm;
89pub mod fdata;
90pub mod fof_regression;
91pub mod fpca_variants;
92pub mod frechet;
93pub mod fts;
94pub mod function_on_scalar;
95pub mod function_on_scalar_2d;
96pub mod gmm;
97pub mod helpers;
98pub mod inference;
99pub mod irreg_fdata;
100pub mod landmark;
101pub mod metric;
102pub mod outliers;
103pub mod regression;
104pub mod scalar_on_function;
105pub mod seasonal;
106pub mod simulation;
107pub mod smoothing;
108pub mod streaming_depth;
109pub mod tolerance;
110pub mod utility;
111pub mod validation;
112pub mod warping;
113pub mod wire;
114
115pub mod covariance;
117
118pub mod spm;
120
121pub mod conformal;
123pub mod elastic;
124pub mod elastic_changepoint;
125pub mod elastic_explain;
126pub mod elastic_fpca;
127pub mod elastic_regression;
128pub mod explain;
129pub mod explain_generic;
130pub mod multi_fdata;
131pub mod pace_fpca;
132pub mod pda;
133pub mod prelude;
134pub mod scoring;
135pub mod smooth_basis;
136
137pub use matrix::{FdCurveSet, FdMatrix};
139
140pub use multi_fdata::{FdComponent, MultiFunData};
142
143pub use pda::{principal_differential_analysis, Lfd, PdaResult};
145
146pub use density_fda::{
148 inverse_lqd, lqd_fpca, lqd_transform, normalize_density, wasserstein_barycenter, LqdFpcaResult,
149};
150
151pub use frechet::{
153 frechet_anova, frechet_global_reg, frechet_local_reg, frechet_mean, frechet_variance,
154 wasserstein2_distance, FrechetAnovaResult, FrechetGlobalRegResult, FrechetLocalRegResult,
155 MetricSpace, WassersteinDensitySpace,
156};
157
158pub use andrews::{andrews_loadings, andrews_transform, AndrewsLoadings, AndrewsResult};
160
161pub use covariance::{
163 covariance_matrix, generate_gaussian_process, CovKernel, GaussianProcessResult,
164};
165
166pub use alignment::{
168 align_to_target, alignment_quality, amplitude_distance, amplitude_self_distance_matrix,
169 bayesian_align_pair, compose_warps, curve_geodesic, curve_geodesic_nd, cut_dendrogram,
170 diagnose_alignment, diagnose_pairwise, elastic_align_pair, elastic_align_pair_closed,
171 elastic_align_pair_constrained, elastic_align_pair_multires, elastic_align_pair_nd,
172 elastic_align_pair_penalized, elastic_align_pair_with_landmarks, elastic_cross_distance_matrix,
173 elastic_cross_distance_matrix_banded, elastic_cross_distance_matrix_with_band,
174 elastic_decomposition, elastic_depth, elastic_distance, elastic_distance_closed,
175 elastic_distance_nd, elastic_outlier_detection, elastic_partial_match,
176 elastic_self_distance_matrix, elastic_self_distance_matrix_banded,
177 elastic_self_distance_matrix_with_band, gauss_model, hierarchical_from_distances, horiz_fpns,
178 invert_warp, joint_gauss_model, karcher_covariance_nd, karcher_mean, karcher_mean_banded,
179 karcher_mean_closed, karcher_mean_nd, karcher_mean_with_band, karcher_median,
180 kmedoids_from_distances, lambda_cv, least_squares_score, least_squares_shift_registration,
181 orbit_representative, pairwise_consistency, pairwise_correlation_score, pca_nd,
182 peak_persistence, phase_boxplot, phase_distance_pair, phase_self_distance_matrix,
183 reparameterize_curve, robust_karcher_mean, shape_confidence_interval, shape_distance,
184 shape_mean, shape_self_distance_matrix, sobolev_least_squares_score, srsf_inverse,
185 srsf_inverse_nd, srsf_transform, srsf_transform_nd, transfer_alignment, tsrvf_from_alignment,
186 tsrvf_from_alignment_with_method, tsrvf_inverse, tsrvf_transform, tsrvf_transform_with_method,
187 warp_complexity, warp_inverse_error, warp_smoothness, warp_statistics, AlignmentDiagnostic,
188 AlignmentDiagnosticSummary, AlignmentQuality, AlignmentResult, AlignmentResultNd,
189 AlignmentSetResult, BayesianAlignConfig, BayesianAlignmentResult, ClosedAlignmentResult,
190 ClosedKarcherMeanResult, ConstrainedAlignmentResult, DecompositionResult, Dendrogram,
191 DiagnosticConfig, ElasticDepthResult, ElasticOutlierConfig, ElasticOutlierResult, FpnsResult,
192 GenerativeModelResult, GeodesicPath, GeodesicPathNd, KMedoidsConfig, KMedoidsResult,
193 KarcherMeanResult, KarcherMeanResultNd, LambdaCvConfig, LambdaCvResult, Linkage,
194 MultiresConfig, OrbitRepresentative, PartialMatchConfig, PartialMatchResult, PcaNdResult,
195 PersistenceDiagramResult, PhaseBoxplot, RobustKarcherConfig, RobustKarcherResult,
196 ShapeCiConfig, ShapeCiResult, ShapeDistanceResult, ShapeMeanResult, ShapeQuotient,
197 ShiftRegistrationResult, TransferAlignConfig, TransferAlignResult, TransportMethod,
198 TsrvfResult, WarpPenaltyType, WarpStatistics,
199};
200
201pub use helpers::{
203 aic, bandwidth_candidates_from_dists, bic, cumulative_trapz, extract_curves, fdata_interpolate,
204 fdata_interpolate_with_policy, gaussian_kernel, gradient, gradient_nonuniform,
205 gradient_uniform, impute_missing_values, l2_distance, linear_interp, quantile_sorted,
206 r_squared, r_squared_adj, simpsons_weights, simpsons_weights_2d, spline_interpolate,
207 spline_interpolate_with_policy, trapz, ExtrapolationPolicy, ImputationMethod,
208 InterpolationMethod, DEFAULT_CONVERGENCE_TOL, NUMERICAL_EPS,
209};
210
211pub use warping::{
213 exp_map_sphere, gam_to_psi, gam_to_psi_smooth, inner_product_l2, inv_exp_map_sphere,
214 invert_gamma, l2_norm_l2, normalize_warp, phase_distance, psi_to_gam,
215};
216
217pub use seasonal::{
219 autoperiod, autoperiod_fdata, cfd_autoperiod, cfd_autoperiod_fdata, hilbert_transform, sazed,
220 sazed_fdata, AutoperiodCandidate, AutoperiodResult, CfdAutoperiodResult, ChangeDetectionResult,
221 ChangePoint, ChangeType, DetectedPeriod, InstantaneousPeriod, Peak, PeakDetectionResult,
222 PeriodEstimate, SazedComponents, SazedResult, StrengthMethod,
223};
224
225pub use landmark::{
227 detect_and_register, detect_landmarks, landmark_register, Landmark, LandmarkKind,
228 LandmarkResult,
229};
230
231pub use detrend::{DecomposeResult, StlConfig, StlResult, TrendResult};
233
234pub use simulation::{EFunType, EValType};
236
237pub use irreg_fdata::{IrregFdata, KernelType};
239pub use irreg_fdata::{face_covariance, face_trajectory, mface_covariance, MfaceCovResult};
241
242pub use tolerance::{
244 conformal_prediction_band, elastic_tolerance_band, elastic_tolerance_band_with_config,
245 equivalence_test, equivalence_test_one_sample, exponential_family_tolerance_band,
246 fpca_tolerance_band, phase_tolerance_band, scb_mean_degras, BandType,
247 ElasticToleranceBandResult, ElasticToleranceConfig, EquivalenceBootstrap,
248 EquivalenceTestResult, ExponentialFamily, MultiplierDistribution, NonConformityScore,
249 PhaseToleranceBand, ToleranceBand,
250};
251
252pub use inference::{
254 f_perm_test, flm_f_test, flm_gof_test, itp_flm, itp_one_pop, itp_two_pop, mean_scb,
255 oneway_anova_vstat, scb_two_sample_test, t_perm_test, two_sample_mean_test, ItpResult,
256 TestResult, DEFAULT_N_PERM,
257};
258
259pub use fts::{
261 fplsr, ftsm, ftsm_forecast, ftsm_forecast_multistep, ftsm_update, functional_acf,
262 functional_difference, functional_pacf, long_run_covariance, stationarity_test, ArModelResult,
263 FacfResult, FplsrResult, FtsmForecastResult, FtsmResult, LongRunCovResult, StationarityResult,
264};
265
266pub use famm::{
268 dense_flmm, fast_fmm, fmm, fmm_predict, fmm_test_fixed, multi_famm, DenseFlmmConfig,
269 DenseFlmmResult, FastFmmConfig, FastFmmResult, FmmResult, FmmTestResult, MultiFammConfig,
270 MultiFammResult,
271};
272
273pub use concurrent_regression::{concurrent_regression, ConcurrentRegrResult};
275
276pub use pace_fpca::{pace_fpca, PaceFpcaConfig, PaceFpcaResult};
278
279pub use fof_regression::{
281 fof_cv, fof_re_regression, fof_regression, predict_fof, predict_fof_re, FofCvResult,
282 FofReConfig, FofReResult, FofResult,
283};
284
285pub use function_on_scalar::{
287 fanova, fosr, fosr_fpc, predict_fosr, FanovaResult, FosrFpcResult, FosrResult,
288};
289pub use function_on_scalar_2d::{fosr_2d, predict_fosr_2d, FosrResult2d, Grid2d};
290
291pub use scalar_on_function::{
293 bootstrap_ci_fregre_lm, bootstrap_ci_functional_logistic, fam, fregre_basis_cv, fregre_cv,
294 fregre_gkam, fregre_gsam, fregre_huber, fregre_l1, fregre_lm, fregre_lm_multi,
295 fregre_lm_multi_cv, fregre_np_cv, fregre_np_from_distances, fregre_np_mixed, fregre_pls,
296 functional_glm, functional_logistic, history_index, model_selection_ncomp,
297 permutation_test_fam, predict_fregre_lm, predict_fregre_lm_multi, predict_fregre_np,
298 predict_fregre_np_from_distances, predict_fregre_pls, predict_fregre_robust,
299 predict_functional_glm, predict_functional_logistic, variable_selection, BootstrapCiResult,
300 FamConfig, FamResult, FregreBasisCvResult, FregreCvResult, FregreLmResult, FregreNpCvResult,
301 FregreNpResult, FregreRobustResult, FunctionalGlmResult, FunctionalLogisticResult, GkamConfig,
302 GkamResult, GlmFamily, GsamConfig, GsamResult, HistoryIndexConfig, HistoryIndexResult,
303 ModelSelectionResult, MultiCvResult, MultiFregreLmResult, PermTestConfig, PermTestResult,
304 PermTestStatistic, PlsRegressionResult, SelectionCriterion, VarSelectConfig, VarSelectPenalty,
305 VarSelectResult,
306};
307
308pub use explain_generic::{
310 generic_ale, generic_anchor, generic_conditional_permutation_importance,
311 generic_counterfactual, generic_domain_selection, generic_friedman_h, generic_lime,
312 generic_pdp, generic_permutation_importance, generic_prototype_criticism, generic_saliency,
313 generic_shap_values, generic_sobol_indices, generic_stability, generic_vif, FpcPredictor,
314 TaskType,
315};
316
317pub use elastic_explain::{elastic_pcr_attribution, ElasticAttributionResult};
319pub use explain::{
320 anchor_explanation, anchor_explanation_logistic, beta_decomposition,
321 beta_decomposition_logistic, calibration_diagnostics, conditional_permutation_importance,
322 conditional_permutation_importance_logistic, conformal_prediction_residuals,
323 counterfactual_logistic, counterfactual_regression, dfbetas_dffits, domain_selection,
324 domain_selection_logistic, expected_calibration_error, explanation_stability,
325 explanation_stability_logistic, fpc_ale, fpc_ale_logistic, fpc_permutation_importance,
326 fpc_permutation_importance_logistic, fpc_shap_values, fpc_shap_values_logistic, fpc_vif,
327 fpc_vif_logistic, friedman_h_statistic, friedman_h_statistic_logistic, functional_pdp,
328 functional_pdp_logistic, functional_saliency, functional_saliency_logistic,
329 influence_diagnostics, lime_explanation, lime_explanation_logistic, loo_cv_press,
330 pointwise_importance, pointwise_importance_logistic, prediction_intervals, prototype_criticism,
331 regression_depth, regression_depth_logistic, significant_regions, significant_regions_from_se,
332 sobol_indices, sobol_indices_logistic, AleResult, AnchorCondition, AnchorResult, AnchorRule,
333 BetaDecomposition, CalibrationDiagnosticsResult, ConditionalPermutationImportanceResult,
334 ConformalPredictionResult, CounterfactualResult, DepthType, DfbetasDffitsResult,
335 DomainSelectionResult, EceResult, FpcPermutationImportance, FpcShapValues, FriedmanHResult,
336 FunctionalPdpResult, FunctionalSaliencyResult, ImportantInterval, InfluenceDiagnostics,
337 LimeResult, LooCvResult, PointwiseImportanceResult, PredictionIntervalResult,
338 PrototypeCriticismResult, RegressionDepthResult, SignificanceDirection, SignificantRegion,
339 SobolIndicesResult, StabilityAnalysisResult, VifResult,
340};
341
342pub use classification::{
344 fclassif_cv, fclassif_cv_with_config, fclassif_dd, fclassif_kernel, fclassif_knn,
345 fclassif_knn_fit, fclassif_lda, fclassif_lda_fit, fclassif_qda, fclassif_qda_fit,
346 kernel_classify_from_distances, knn_classify_from_distances, ClassifCvConfig, ClassifCvResult,
347 ClassifFit, ClassifMethod, ClassifResult,
348};
349
350pub use conformal::{
352 conformal_classif, conformal_elastic_logistic, conformal_elastic_pcr,
353 conformal_elastic_pcr_with_config, conformal_elastic_regression,
354 conformal_elastic_regression_with_config, conformal_fregre_lm, conformal_fregre_np,
355 conformal_generic_classification, conformal_generic_regression, conformal_logistic,
356 cv_conformal_classification, cv_conformal_regression, jackknife_plus_regression,
357 ClassificationScore, ConformalClassificationResult, ConformalConfig, ConformalMethod,
358 ConformalRegressionResult,
359};
360
361pub use gmm::{
363 funhddC_cluster, gmm_cluster, gmm_cluster_with_config, gmm_em, predict_gmm, CovType,
364 FunHddcConfig, FunHddcResult, GmmClusterConfig, GmmClusterResult, GmmResult,
365};
366
367pub use streaming_depth::{
369 FullReferenceState, RollingReference, SortedReferenceState, StreamingBd, StreamingDepth,
370 StreamingFraimanMuniz, StreamingMbd,
371};
372
373pub use smooth_basis::{
375 basis_nbasis_cv, basis_nbasis_cv_with_config, bspline_penalty_matrix, fourier_penalty_matrix,
376 smooth_basis, smooth_basis_aic, smooth_basis_gcv, smooth_basis_gcv_with_config, BasisCriterion,
377 BasisNbasisCvConfig, BasisNbasisCvResult, BasisType, FdPar, SmoothBasisGcvConfig,
378 SmoothBasisResult,
379};
380
381pub use elastic_fpca::{
383 horiz_fpca, horiz_fpca_from_alignment, joint_fpca, joint_fpca_from_alignment, vert_fpca,
384 vert_fpca_from_alignment, HorizFpcaResult, JointFpcaResult, VertFpcaResult,
385};
386
387pub use elastic_regression::{
389 elastic_logistic, elastic_logistic_with_config, elastic_multinomial, elastic_pcr,
390 elastic_pcr_with_config, elastic_regression, elastic_regression_with_config,
391 predict_elastic_logistic, predict_elastic_multinomial, predict_elastic_regression,
392 predict_scalar_on_shape, scalar_on_shape, ElasticConfig, ElasticLogisticResult,
393 ElasticMultinomialResult, ElasticPcrConfig, ElasticPcrResult, ElasticRegressionResult,
394 IndexMethod, PcaMethod, ScalarOnShapeConfig, ScalarOnShapeResult,
395};
396
397pub use spm::{
399 arl0_ewma_t2, arl0_spe, arl0_t2, arl1_t2, elastic_spm_monitor, elastic_spm_phase1,
400 evaluate_rules, ewma_scores, frcc_monitor, frcc_phase1, hotelling_t2, hotelling_t2_regularized,
401 mf_spm_monitor, mf_spm_phase1, mfpca, nelson_rules, profile_monitor, profile_phase1,
402 select_ncomp, spe_contributions, spe_control_limit, spe_limit_robust,
403 spe_moment_match_diagnostic, spe_multivariate, spe_univariate, spm_amewma_monitor,
404 spm_cusum_monitor, spm_cusum_monitor_with_restart, spm_ewma_monitor, spm_mewma_monitor,
405 spm_monitor, spm_monitor_from_fields, spm_monitor_partial, spm_monitor_partial_batch,
406 spm_phase1, spm_phase1_iterative, t2_contributions, t2_contributions_mfpca, t2_control_limit,
407 t2_limit_robust, t2_pc_contributions, t2_pc_significance, western_electric_rules, AmewmaConfig,
408 AmewmaMonitorResult, ArlConfig, ArlResult, ChartRule, ControlLimit, ControlLimitMethod,
409 CusumConfig, CusumMonitorResult, DomainCompletion, ElasticSpmChart, ElasticSpmConfig,
410 ElasticSpmMonitorResult, EwmaConfig, EwmaMonitorResult, FrccChart, FrccConfig,
411 FrccMonitorResult, IterativePhase1Config, IterativePhase1Result, MewmaConfig,
412 MewmaMonitorResult, MfSpmChart, MfpcaConfig, MfpcaResult, NcompMethod, PartialDomainConfig,
413 PartialMonitorResult, ProfileChart, ProfileMonitorConfig, ProfileMonitorResult, RuleViolation,
414 SpmChart, SpmConfig, SpmMonitorResult,
415};
416
417pub use elastic_changepoint::{
419 elastic_amp_changepoint, elastic_fpca_changepoint, elastic_ph_changepoint, ChangepointResult,
420 ChangepointType, FpcaChangepointMethod,
421};
422
423pub use cv::{
425 classification_metrics, create_folds, create_stratified_folds, cv_fdata, cv_fdata_with_metrics,
426 fold_indices, metric_accuracy, metric_f1, metric_mae, metric_precision, metric_r_squared,
427 metric_recall, metric_rmse, regression_metrics, subset_rows, subset_vec, CvFdataResult,
428 CvMetrics, CvSelectionResult, CvType, MetricFn,
429};
430
431pub use distance::{
433 cross_distance_matrix, euclidean_distance_matrix, l2_distance_matrix, pairwise_distance_matrix,
434};
435
436pub use validation::{
438 validate_dist_mat, validate_fdata, validate_labels, validate_ncomp, validate_response,
439};
440
441pub use smoothing::{
443 aic_smoother, cv_smoother, gcv_smoother, knn_gcv, knn_lcv, optim_bandwidth, CvCriterion,
444 KnnCvResult, OptimBandwidthResult,
445};
446
447pub use regression::{fdata_to_pc_1d, fdata_to_pls_1d, FpcaResult, PlsResult};
449pub use fpca_variants::{
451 cross_covariance, dynamical_correlation, fpca_der, fsvd, ssvd, FsvdResult,
452};
453#[cfg(feature = "linalg")]
454pub use regression::{ridge_regression_fit, RidgeResult};
455
456pub use clustering::{
458 calinski_harabasz, calinski_harabasz_from_distances, fuzzy_cmeans_fd, kmeans_fd,
459 silhouette_score, silhouette_score_from_distances, FuzzyCmeansResult, KmeansResult,
460};
461
462pub use clustering_advanced::{
464 align_cluster_fd, dbscan_fd, funfem_cluster, kcfc_cluster, AlignClusterConfig,
465 AlignClusterResult, DbscanConfig, DbscanResult, FunFemConfig, FunFemResult, KcfcConfig,
466 KcfcResult,
467};
468
469pub use metric::{
471 dtw_cross_1d, dtw_distance, dtw_self_1d, fourier_cross_1d, fourier_self_1d, hausdorff_3d,
472 hausdorff_cross_1d, hausdorff_cross_2d, hausdorff_self_1d, hausdorff_self_2d, hshift_cross_1d,
473 hshift_self_1d, lp_cross_1d, lp_cross_2d, lp_self_1d, lp_self_2d, soft_dtw_barycenter,
474 soft_dtw_cross_1d, soft_dtw_distance, soft_dtw_div_cross_1d, soft_dtw_div_self_1d,
475 soft_dtw_divergence, soft_dtw_self_1d, SoftDtwBarycenterResult,
476};
477
478pub use depth::{
480 band_1d, epigraph_index_1d, extremal_depth_1d, extreme_rank_length_depth_1d, fraiman_muniz_1d,
481 fraiman_muniz_2d, functional_boxplot, functional_depth, functional_spatial_1d,
482 functional_spatial_2d, half_region_depth_1d, hypograph_index_1d, kernel_functional_spatial_1d,
483 kernel_functional_spatial_2d, linfinity_depth_1d, modal_1d, modal_2d, modified_band_1d,
484 modified_epigraph_index_1d, modified_half_region_depth_1d, modified_hypograph_index_1d,
485 random_projection_1d, random_projection_1d_seeded, random_projection_2d, random_tukey_1d,
486 random_tukey_1d_seeded, random_tukey_2d, total_variation_depth_1d, DepthMethod,
487 FunctionalBoxplotResult, TvdMssResult,
488};
489
490pub use outliers::{
492 depthgram, detect_outliers_lrt, magnitude_shape_outlyingness, muod, outliergram,
493 outliers_threshold_lrt, outliers_threshold_lrt_with_dist, sequential_transform_outliers,
494 tvdmss, DepthgramConfig, DepthgramResult, MagnitudeShapeResult, MuodConfig, MuodResult,
495 OutligramResult, SeqTransform, SeqTransformConfig, SeqTransformOutliers, TvdMssConfig,
496 TvdMssOutliers,
497};
498
499pub use utility::{
501 compute_adot, inner_product, inner_product_matrix, integrate_simpson, knn_loocv, knn_predict,
502 pcvm_statistic, rp_stat, RpStatResult,
503};
504
505pub use fdata::{
507 center_1d, depth_based_median, deriv_1d, deriv_2d, functional_covariance, functional_std,
508 functional_variance, geometric_median_1d, geometric_median_2d, mean_1d, mean_2d, norm_lp_1d,
509 normalize, normalize_with_argvals, trim_mean, Deriv2DResult, NormalizationMethod,
510};
511
512pub use basis::{
514 basis_to_fdata, basis_to_fdata_1d, bspline_basis, bspline_basis_from_knots, constant_basis,
515 construct_bspline_knots, difference_matrix, exponential_basis, fdata_to_basis,
516 fdata_to_basis_1d, fourier_basis, fourier_basis_with_period, fourier_fit_1d, monomial_basis,
517 polygonal_basis, power_basis, pspline_evaluate, pspline_fit_1d, pspline_fit_gcv,
518 select_basis_auto_1d, select_fourier_nbasis_gcv, BasisAutoSelectionResult,
519 BasisProjectionResult, BasisSystem, FourierFitResult, ProjectionBasisType, PsplineFitResult,
520 SingleCurveSelection,
521};
522
523pub use scoring::{
525 functional_explained_variance, functional_mae, functional_mape, functional_mse, functional_msle,
526};