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