1#![allow(clippy::needless_range_loop)]
27#![allow(clippy::too_many_arguments)]
28#![allow(clippy::type_complexity)]
29
30pub mod error;
31pub(crate) mod linalg;
32pub mod matrix;
33pub mod parallel;
34
35pub use error::FdarError;
36
37#[cfg(test)]
38pub(crate) mod test_helpers;
39
40pub mod alignment;
41pub mod andrews;
42pub mod basis;
43pub mod classification;
44pub mod clustering;
45pub mod cv;
46pub mod depth;
47pub mod detrend;
48pub mod famm;
49pub mod fdata;
50pub mod function_on_scalar;
51pub mod function_on_scalar_2d;
52pub mod gmm;
53pub mod helpers;
54pub mod irreg_fdata;
55pub mod landmark;
56pub mod metric;
57pub mod outliers;
58pub mod regression;
59pub mod scalar_on_function;
60pub mod seasonal;
61pub mod simulation;
62pub mod smoothing;
63pub mod streaming_depth;
64pub mod tolerance;
65pub mod utility;
66pub mod warping;
67
68pub mod covariance;
70
71pub mod spm;
73
74pub mod conformal;
76pub mod elastic;
77pub mod elastic_changepoint;
78pub mod elastic_explain;
79pub mod elastic_fpca;
80pub mod elastic_regression;
81pub mod explain;
82pub mod explain_generic;
83pub mod prelude;
84pub mod smooth_basis;
85
86pub use matrix::{FdCurveSet, FdMatrix};
88
89pub use andrews::{andrews_loadings, andrews_transform, AndrewsLoadings, AndrewsResult};
91
92pub use covariance::{
94 covariance_matrix, generate_gaussian_process, CovKernel, GaussianProcessResult,
95};
96
97pub use alignment::{
99 align_to_target, alignment_quality, amplitude_distance, amplitude_self_distance_matrix,
100 compose_warps, cut_dendrogram, diagnose_alignment, diagnose_pairwise, elastic_align_pair,
101 elastic_align_pair_constrained, elastic_align_pair_nd, elastic_align_pair_penalized,
102 elastic_align_pair_with_landmarks, elastic_cross_distance_matrix, elastic_decomposition,
103 elastic_distance, elastic_distance_nd, elastic_hierarchical, elastic_kmeans,
104 elastic_self_distance_matrix, invert_warp, karcher_mean, lambda_cv, orbit_representative,
105 pairwise_consistency, phase_boxplot, phase_distance_pair, phase_self_distance_matrix,
106 reparameterize_curve, shape_distance, shape_mean, shape_self_distance_matrix, srsf_inverse,
107 srsf_inverse_nd, srsf_transform, srsf_transform_nd, tsrvf_from_alignment,
108 tsrvf_from_alignment_with_method, tsrvf_inverse, tsrvf_transform, tsrvf_transform_with_method,
109 warp_complexity, warp_inverse_error, warp_smoothness, warp_statistics, AlignmentDiagnostic,
110 AlignmentDiagnosticSummary, AlignmentQuality, AlignmentResult, AlignmentResultNd,
111 AlignmentSetResult, ConstrainedAlignmentResult, DecompositionResult, DiagnosticConfig,
112 ElasticClusterConfig, ElasticClusterMethod, ElasticClusterResult, ElasticDendrogram,
113 KarcherMeanResult, LambdaCvConfig, LambdaCvResult, OrbitRepresentative, PhaseBoxplot,
114 ShapeDistanceResult, ShapeMeanResult, ShapeQuotient, TransportMethod, TsrvfResult,
115 WarpPenaltyType, WarpStatistics,
116};
117
118pub use helpers::{
120 cumulative_trapz, extract_curves, gradient, gradient_nonuniform, gradient_uniform, l2_distance,
121 linear_interp, simpsons_weights, simpsons_weights_2d, trapz, DEFAULT_CONVERGENCE_TOL,
122 NUMERICAL_EPS,
123};
124
125pub use warping::{
127 exp_map_sphere, gam_to_psi, gam_to_psi_smooth, inner_product_l2, inv_exp_map_sphere,
128 invert_gamma, l2_norm_l2, normalize_warp, phase_distance, psi_to_gam,
129};
130
131pub use seasonal::{
133 autoperiod, autoperiod_fdata, cfd_autoperiod, cfd_autoperiod_fdata, hilbert_transform, sazed,
134 sazed_fdata, AutoperiodCandidate, AutoperiodResult, CfdAutoperiodResult, ChangeDetectionResult,
135 ChangePoint, ChangeType, DetectedPeriod, InstantaneousPeriod, Peak, PeakDetectionResult,
136 PeriodEstimate, SazedComponents, SazedResult, StrengthMethod,
137};
138
139pub use landmark::{
141 detect_and_register, detect_landmarks, landmark_register, Landmark, LandmarkKind,
142 LandmarkResult,
143};
144
145pub use detrend::{DecomposeResult, StlConfig, StlResult, TrendResult};
147
148pub use simulation::{EFunType, EValType};
150
151pub use irreg_fdata::{IrregFdata, KernelType};
153
154pub use tolerance::{
156 conformal_prediction_band, elastic_tolerance_band, elastic_tolerance_band_with_config,
157 equivalence_test, equivalence_test_one_sample, exponential_family_tolerance_band,
158 fpca_tolerance_band, phase_tolerance_band, scb_mean_degras, BandType,
159 ElasticToleranceBandResult, ElasticToleranceConfig, EquivalenceBootstrap,
160 EquivalenceTestResult, ExponentialFamily, MultiplierDistribution, NonConformityScore,
161 PhaseToleranceBand, ToleranceBand,
162};
163
164pub use famm::{fmm, fmm_predict, fmm_test_fixed, FmmResult, FmmTestResult};
166
167pub use function_on_scalar::{
169 fanova, fosr, fosr_fpc, predict_fosr, FanovaResult, FosrFpcResult, FosrResult,
170};
171pub use function_on_scalar_2d::{fosr_2d, predict_fosr_2d, FosrResult2d, Grid2d};
172
173pub use scalar_on_function::{
175 bootstrap_ci_fregre_lm, bootstrap_ci_functional_logistic, fregre_basis_cv, fregre_cv,
176 fregre_huber, fregre_l1, fregre_lm, fregre_np_cv, fregre_np_mixed, functional_logistic,
177 model_selection_ncomp, predict_fregre_lm, predict_fregre_np, predict_fregre_robust,
178 predict_functional_logistic, BootstrapCiResult, FregreBasisCvResult, FregreCvResult,
179 FregreLmResult, FregreNpCvResult, FregreNpResult, FregreRobustResult, FunctionalLogisticResult,
180 ModelSelectionResult, SelectionCriterion,
181};
182
183pub use explain_generic::{
185 generic_ale, generic_anchor, generic_conditional_permutation_importance,
186 generic_counterfactual, generic_domain_selection, generic_friedman_h, generic_lime,
187 generic_pdp, generic_permutation_importance, generic_prototype_criticism, generic_saliency,
188 generic_shap_values, generic_sobol_indices, generic_stability, generic_vif, FpcPredictor,
189 TaskType,
190};
191
192pub use elastic_explain::{elastic_pcr_attribution, ElasticAttributionResult};
194pub use explain::{
195 anchor_explanation, anchor_explanation_logistic, beta_decomposition,
196 beta_decomposition_logistic, calibration_diagnostics, conditional_permutation_importance,
197 conditional_permutation_importance_logistic, conformal_prediction_residuals,
198 counterfactual_logistic, counterfactual_regression, dfbetas_dffits, domain_selection,
199 domain_selection_logistic, expected_calibration_error, explanation_stability,
200 explanation_stability_logistic, fpc_ale, fpc_ale_logistic, fpc_permutation_importance,
201 fpc_permutation_importance_logistic, fpc_shap_values, fpc_shap_values_logistic, fpc_vif,
202 fpc_vif_logistic, friedman_h_statistic, friedman_h_statistic_logistic, functional_pdp,
203 functional_pdp_logistic, functional_saliency, functional_saliency_logistic,
204 influence_diagnostics, lime_explanation, lime_explanation_logistic, loo_cv_press,
205 pointwise_importance, pointwise_importance_logistic, prediction_intervals, prototype_criticism,
206 regression_depth, regression_depth_logistic, significant_regions, significant_regions_from_se,
207 sobol_indices, sobol_indices_logistic, AleResult, AnchorCondition, AnchorResult, AnchorRule,
208 BetaDecomposition, CalibrationDiagnosticsResult, ConditionalPermutationImportanceResult,
209 ConformalPredictionResult, CounterfactualResult, DepthType, DfbetasDffitsResult,
210 DomainSelectionResult, EceResult, FpcPermutationImportance, FpcShapValues, FriedmanHResult,
211 FunctionalPdpResult, FunctionalSaliencyResult, ImportantInterval, InfluenceDiagnostics,
212 LimeResult, LooCvResult, PointwiseImportanceResult, PredictionIntervalResult,
213 PrototypeCriticismResult, RegressionDepthResult, SignificanceDirection, SignificantRegion,
214 SobolIndicesResult, StabilityAnalysisResult, VifResult,
215};
216
217pub use classification::{
219 fclassif_cv, fclassif_cv_with_config, fclassif_dd, fclassif_kernel, fclassif_knn,
220 fclassif_knn_fit, fclassif_lda, fclassif_lda_fit, fclassif_qda, fclassif_qda_fit,
221 ClassifCvConfig, ClassifCvResult, ClassifFit, ClassifMethod, ClassifResult,
222};
223
224pub use conformal::{
226 conformal_classif, conformal_elastic_logistic, conformal_elastic_pcr,
227 conformal_elastic_pcr_with_config, conformal_elastic_regression,
228 conformal_elastic_regression_with_config, conformal_fregre_lm, conformal_fregre_np,
229 conformal_generic_classification, conformal_generic_regression, conformal_logistic,
230 cv_conformal_classification, cv_conformal_regression, jackknife_plus_regression,
231 ClassificationScore, ConformalClassificationResult, ConformalConfig, ConformalMethod,
232 ConformalRegressionResult,
233};
234
235pub use gmm::{
237 gmm_cluster, gmm_cluster_with_config, gmm_em, predict_gmm, CovType, GmmClusterConfig,
238 GmmClusterResult, GmmResult,
239};
240
241pub use streaming_depth::{
243 FullReferenceState, RollingReference, SortedReferenceState, StreamingBd, StreamingDepth,
244 StreamingFraimanMuniz, StreamingMbd,
245};
246
247pub use smooth_basis::{
249 basis_nbasis_cv, basis_nbasis_cv_with_config, bspline_penalty_matrix, fourier_penalty_matrix,
250 smooth_basis, smooth_basis_gcv, smooth_basis_gcv_with_config, BasisCriterion,
251 BasisNbasisCvConfig, BasisNbasisCvResult, BasisType, FdPar, SmoothBasisGcvConfig,
252 SmoothBasisResult,
253};
254
255pub use elastic_fpca::{
257 horiz_fpca, joint_fpca, vert_fpca, HorizFpcaResult, JointFpcaResult, VertFpcaResult,
258};
259
260pub use elastic_regression::{
262 elastic_logistic, elastic_logistic_with_config, elastic_pcr, elastic_pcr_with_config,
263 elastic_regression, elastic_regression_with_config, predict_elastic_logistic,
264 predict_elastic_regression, predict_scalar_on_shape, scalar_on_shape, ElasticConfig,
265 ElasticLogisticResult, ElasticPcrConfig, ElasticPcrResult, ElasticRegressionResult,
266 IndexMethod, PcaMethod, ScalarOnShapeConfig, ScalarOnShapeResult,
267};
268
269pub use spm::{
271 arl0_ewma_t2, arl0_spe, arl0_t2, arl1_t2, elastic_spm_monitor, elastic_spm_phase1,
272 evaluate_rules, ewma_scores, frcc_monitor, frcc_phase1, hotelling_t2, hotelling_t2_regularized,
273 mf_spm_monitor, mf_spm_phase1, mfpca, nelson_rules, profile_monitor, profile_phase1,
274 select_ncomp, spe_contributions, spe_control_limit, spe_limit_robust,
275 spe_moment_match_diagnostic, spe_multivariate, spe_univariate, spm_amewma_monitor,
276 spm_cusum_monitor, spm_cusum_monitor_with_restart, spm_ewma_monitor, spm_mewma_monitor,
277 spm_monitor, spm_monitor_partial, spm_monitor_partial_batch, spm_phase1, spm_phase1_iterative,
278 t2_contributions, t2_contributions_mfpca, t2_control_limit, t2_limit_robust,
279 t2_pc_contributions, t2_pc_significance, western_electric_rules, AmewmaConfig,
280 AmewmaMonitorResult, ArlConfig, ArlResult, ChartRule, ControlLimit, ControlLimitMethod,
281 CusumConfig, CusumMonitorResult, DomainCompletion, ElasticSpmChart, ElasticSpmConfig,
282 ElasticSpmMonitorResult, EwmaConfig, EwmaMonitorResult, FrccChart, FrccConfig,
283 FrccMonitorResult, IterativePhase1Config, IterativePhase1Result, MewmaConfig,
284 MewmaMonitorResult, MfSpmChart, MfpcaConfig, MfpcaResult, NcompMethod, PartialDomainConfig,
285 PartialMonitorResult, ProfileChart, ProfileMonitorConfig, ProfileMonitorResult, RuleViolation,
286 SpmChart, SpmConfig, SpmMonitorResult,
287};
288
289pub use elastic_changepoint::{
291 elastic_amp_changepoint, elastic_fpca_changepoint, elastic_ph_changepoint, ChangepointResult,
292 ChangepointType, FpcaChangepointMethod,
293};
294
295pub use cv::{
297 create_folds, create_stratified_folds, cv_fdata, fold_indices, subset_rows, subset_vec,
298 CvFdataResult, CvMetrics, CvType,
299};
300
301pub use smoothing::{
303 cv_smoother, gcv_smoother, knn_gcv, knn_lcv, optim_bandwidth, CvCriterion, KnnCvResult,
304 OptimBandwidthResult,
305};
306
307pub use regression::{fdata_to_pc_1d, fdata_to_pls_1d, FpcaResult, PlsResult};
309#[cfg(feature = "linalg")]
310pub use regression::{ridge_regression_fit, RidgeResult};
311
312pub use clustering::{
314 calinski_harabasz, fuzzy_cmeans_fd, kmeans_fd, silhouette_score, FuzzyCmeansResult,
315 KmeansResult,
316};
317
318pub use metric::{
320 dtw_cross_1d, dtw_distance, dtw_self_1d, fourier_cross_1d, fourier_self_1d, hausdorff_3d,
321 hausdorff_cross_1d, hausdorff_cross_2d, hausdorff_self_1d, hausdorff_self_2d, hshift_cross_1d,
322 hshift_self_1d, lp_cross_1d, lp_cross_2d, lp_self_1d, lp_self_2d, soft_dtw_barycenter,
323 soft_dtw_cross_1d, soft_dtw_distance, soft_dtw_div_cross_1d, soft_dtw_div_self_1d,
324 soft_dtw_divergence, soft_dtw_self_1d, SoftDtwBarycenterResult,
325};
326
327pub use depth::{
329 band_1d, fraiman_muniz_1d, fraiman_muniz_2d, functional_spatial_1d, functional_spatial_2d,
330 kernel_functional_spatial_1d, kernel_functional_spatial_2d, modal_1d, modal_2d,
331 modified_band_1d, modified_epigraph_index_1d, random_projection_1d,
332 random_projection_1d_seeded, random_projection_2d, random_tukey_1d, random_tukey_1d_seeded,
333 random_tukey_2d,
334};
335
336pub use outliers::{detect_outliers_lrt, outliers_threshold_lrt, outliers_threshold_lrt_with_dist};
338
339pub use utility::{
341 compute_adot, inner_product, inner_product_matrix, integrate_simpson, knn_loocv, knn_predict,
342 pcvm_statistic, rp_stat, RpStatResult,
343};
344
345pub use fdata::{
347 center_1d, deriv_1d, deriv_2d, geometric_median_1d, geometric_median_2d, mean_1d, mean_2d,
348 norm_lp_1d, Deriv2DResult,
349};
350
351pub use basis::{
353 basis_to_fdata, basis_to_fdata_1d, bspline_basis, difference_matrix, fdata_to_basis,
354 fdata_to_basis_1d, fourier_basis, fourier_basis_with_period, fourier_fit_1d, pspline_fit_1d,
355 select_basis_auto_1d, select_fourier_nbasis_gcv, BasisAutoSelectionResult,
356 BasisProjectionResult, FourierFitResult, ProjectionBasisType, PsplineFitResult,
357 SingleCurveSelection,
358};