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