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;
67pub mod wire;
68
69pub mod covariance;
71
72pub mod spm;
74
75pub mod conformal;
77pub mod elastic;
78pub mod elastic_changepoint;
79pub mod elastic_explain;
80pub mod elastic_fpca;
81pub mod elastic_regression;
82pub mod explain;
83pub mod explain_generic;
84pub mod prelude;
85pub mod smooth_basis;
86
87pub use matrix::{FdCurveSet, FdMatrix};
89
90pub use andrews::{andrews_loadings, andrews_transform, AndrewsLoadings, AndrewsResult};
92
93pub use covariance::{
95 covariance_matrix, generate_gaussian_process, CovKernel, GaussianProcessResult,
96};
97
98pub use alignment::{
100 align_to_target, alignment_quality, amplitude_distance, amplitude_self_distance_matrix,
101 bayesian_align_pair, compose_warps, curve_geodesic, curve_geodesic_nd, cut_dendrogram,
102 diagnose_alignment, diagnose_pairwise, elastic_align_pair, elastic_align_pair_closed,
103 elastic_align_pair_constrained, elastic_align_pair_multires, elastic_align_pair_nd,
104 elastic_align_pair_penalized, elastic_align_pair_with_landmarks, elastic_cross_distance_matrix,
105 elastic_decomposition, elastic_depth, elastic_distance, elastic_distance_closed,
106 elastic_distance_nd, elastic_outlier_detection, elastic_partial_match,
107 elastic_self_distance_matrix, gauss_model, hierarchical_from_distances, horiz_fpns,
108 invert_warp, joint_gauss_model, karcher_covariance_nd, karcher_mean, karcher_mean_closed,
109 karcher_mean_nd, karcher_median, kmedoids_from_distances, lambda_cv, orbit_representative,
110 pairwise_consistency, pca_nd, peak_persistence, phase_boxplot, phase_distance_pair,
111 phase_self_distance_matrix, reparameterize_curve, robust_karcher_mean,
112 shape_confidence_interval, shape_distance, shape_mean, shape_self_distance_matrix,
113 srsf_inverse, srsf_inverse_nd, srsf_transform, srsf_transform_nd, transfer_alignment,
114 tsrvf_from_alignment, tsrvf_from_alignment_with_method, tsrvf_inverse, tsrvf_transform,
115 tsrvf_transform_with_method, warp_complexity, warp_inverse_error, warp_smoothness,
116 warp_statistics, AlignmentDiagnostic, AlignmentDiagnosticSummary, AlignmentQuality,
117 AlignmentResult, AlignmentResultNd, AlignmentSetResult, BayesianAlignConfig,
118 BayesianAlignmentResult, ClosedAlignmentResult, ClosedKarcherMeanResult,
119 ConstrainedAlignmentResult, DecompositionResult, Dendrogram, DiagnosticConfig,
120 ElasticDepthResult, ElasticOutlierConfig, ElasticOutlierResult, FpnsResult,
121 GenerativeModelResult, GeodesicPath, GeodesicPathNd, KMedoidsConfig, KMedoidsResult,
122 KarcherMeanResult, KarcherMeanResultNd, LambdaCvConfig, LambdaCvResult, Linkage,
123 MultiresConfig, OrbitRepresentative, PartialMatchConfig, PartialMatchResult, PcaNdResult,
124 PersistenceDiagramResult, PhaseBoxplot, RobustKarcherConfig, RobustKarcherResult,
125 ShapeCiConfig, ShapeCiResult, ShapeDistanceResult, ShapeMeanResult, ShapeQuotient,
126 TransferAlignConfig, TransferAlignResult, TransportMethod, TsrvfResult, WarpPenaltyType,
127 WarpStatistics,
128};
129
130pub use helpers::{
132 cumulative_trapz, extract_curves, fdata_interpolate, gradient, gradient_nonuniform,
133 gradient_uniform, l2_distance, linear_interp, simpsons_weights, simpsons_weights_2d, trapz,
134 InterpolationMethod, DEFAULT_CONVERGENCE_TOL, NUMERICAL_EPS,
135};
136
137pub use warping::{
139 exp_map_sphere, gam_to_psi, gam_to_psi_smooth, inner_product_l2, inv_exp_map_sphere,
140 invert_gamma, l2_norm_l2, normalize_warp, phase_distance, psi_to_gam,
141};
142
143pub use seasonal::{
145 autoperiod, autoperiod_fdata, cfd_autoperiod, cfd_autoperiod_fdata, hilbert_transform, sazed,
146 sazed_fdata, AutoperiodCandidate, AutoperiodResult, CfdAutoperiodResult, ChangeDetectionResult,
147 ChangePoint, ChangeType, DetectedPeriod, InstantaneousPeriod, Peak, PeakDetectionResult,
148 PeriodEstimate, SazedComponents, SazedResult, StrengthMethod,
149};
150
151pub use landmark::{
153 detect_and_register, detect_landmarks, landmark_register, Landmark, LandmarkKind,
154 LandmarkResult,
155};
156
157pub use detrend::{DecomposeResult, StlConfig, StlResult, TrendResult};
159
160pub use simulation::{EFunType, EValType};
162
163pub use irreg_fdata::{IrregFdata, KernelType};
165
166pub use tolerance::{
168 conformal_prediction_band, elastic_tolerance_band, elastic_tolerance_band_with_config,
169 equivalence_test, equivalence_test_one_sample, exponential_family_tolerance_band,
170 fpca_tolerance_band, phase_tolerance_band, scb_mean_degras, BandType,
171 ElasticToleranceBandResult, ElasticToleranceConfig, EquivalenceBootstrap,
172 EquivalenceTestResult, ExponentialFamily, MultiplierDistribution, NonConformityScore,
173 PhaseToleranceBand, ToleranceBand,
174};
175
176pub use famm::{fmm, fmm_predict, fmm_test_fixed, FmmResult, FmmTestResult};
178
179pub use function_on_scalar::{
181 fanova, fosr, fosr_fpc, predict_fosr, FanovaResult, FosrFpcResult, FosrResult,
182};
183pub use function_on_scalar_2d::{fosr_2d, predict_fosr_2d, FosrResult2d, Grid2d};
184
185pub use scalar_on_function::{
187 bootstrap_ci_fregre_lm, bootstrap_ci_functional_logistic, fregre_basis_cv, fregre_cv,
188 fregre_huber, fregre_l1, fregre_lm, fregre_np_cv, fregre_np_from_distances, fregre_np_mixed,
189 fregre_pls, functional_logistic, model_selection_ncomp, predict_fregre_lm, predict_fregre_np,
190 predict_fregre_np_from_distances, predict_fregre_pls, predict_fregre_robust,
191 predict_functional_logistic, BootstrapCiResult, FregreBasisCvResult, FregreCvResult,
192 FregreLmResult, FregreNpCvResult, FregreNpResult, FregreRobustResult, FunctionalLogisticResult,
193 ModelSelectionResult, PlsRegressionResult, SelectionCriterion,
194};
195
196pub use explain_generic::{
198 generic_ale, generic_anchor, generic_conditional_permutation_importance,
199 generic_counterfactual, generic_domain_selection, generic_friedman_h, generic_lime,
200 generic_pdp, generic_permutation_importance, generic_prototype_criticism, generic_saliency,
201 generic_shap_values, generic_sobol_indices, generic_stability, generic_vif, FpcPredictor,
202 TaskType,
203};
204
205pub use elastic_explain::{elastic_pcr_attribution, ElasticAttributionResult};
207pub use explain::{
208 anchor_explanation, anchor_explanation_logistic, beta_decomposition,
209 beta_decomposition_logistic, calibration_diagnostics, conditional_permutation_importance,
210 conditional_permutation_importance_logistic, conformal_prediction_residuals,
211 counterfactual_logistic, counterfactual_regression, dfbetas_dffits, domain_selection,
212 domain_selection_logistic, expected_calibration_error, explanation_stability,
213 explanation_stability_logistic, fpc_ale, fpc_ale_logistic, fpc_permutation_importance,
214 fpc_permutation_importance_logistic, fpc_shap_values, fpc_shap_values_logistic, fpc_vif,
215 fpc_vif_logistic, friedman_h_statistic, friedman_h_statistic_logistic, functional_pdp,
216 functional_pdp_logistic, functional_saliency, functional_saliency_logistic,
217 influence_diagnostics, lime_explanation, lime_explanation_logistic, loo_cv_press,
218 pointwise_importance, pointwise_importance_logistic, prediction_intervals, prototype_criticism,
219 regression_depth, regression_depth_logistic, significant_regions, significant_regions_from_se,
220 sobol_indices, sobol_indices_logistic, AleResult, AnchorCondition, AnchorResult, AnchorRule,
221 BetaDecomposition, CalibrationDiagnosticsResult, ConditionalPermutationImportanceResult,
222 ConformalPredictionResult, CounterfactualResult, DepthType, DfbetasDffitsResult,
223 DomainSelectionResult, EceResult, FpcPermutationImportance, FpcShapValues, FriedmanHResult,
224 FunctionalPdpResult, FunctionalSaliencyResult, ImportantInterval, InfluenceDiagnostics,
225 LimeResult, LooCvResult, PointwiseImportanceResult, PredictionIntervalResult,
226 PrototypeCriticismResult, RegressionDepthResult, SignificanceDirection, SignificantRegion,
227 SobolIndicesResult, StabilityAnalysisResult, VifResult,
228};
229
230pub use classification::{
232 fclassif_cv, fclassif_cv_with_config, fclassif_dd, fclassif_kernel, fclassif_knn,
233 fclassif_knn_fit, fclassif_lda, fclassif_lda_fit, fclassif_qda, fclassif_qda_fit,
234 kernel_classify_from_distances, knn_classify_from_distances, ClassifCvConfig, ClassifCvResult,
235 ClassifFit, ClassifMethod, ClassifResult,
236};
237
238pub use conformal::{
240 conformal_classif, conformal_elastic_logistic, conformal_elastic_pcr,
241 conformal_elastic_pcr_with_config, conformal_elastic_regression,
242 conformal_elastic_regression_with_config, conformal_fregre_lm, conformal_fregre_np,
243 conformal_generic_classification, conformal_generic_regression, conformal_logistic,
244 cv_conformal_classification, cv_conformal_regression, jackknife_plus_regression,
245 ClassificationScore, ConformalClassificationResult, ConformalConfig, ConformalMethod,
246 ConformalRegressionResult,
247};
248
249pub use gmm::{
251 gmm_cluster, gmm_cluster_with_config, gmm_em, predict_gmm, CovType, GmmClusterConfig,
252 GmmClusterResult, GmmResult,
253};
254
255pub use streaming_depth::{
257 FullReferenceState, RollingReference, SortedReferenceState, StreamingBd, StreamingDepth,
258 StreamingFraimanMuniz, StreamingMbd,
259};
260
261pub use smooth_basis::{
263 basis_nbasis_cv, basis_nbasis_cv_with_config, bspline_penalty_matrix, fourier_penalty_matrix,
264 smooth_basis, smooth_basis_gcv, smooth_basis_gcv_with_config, BasisCriterion,
265 BasisNbasisCvConfig, BasisNbasisCvResult, BasisType, FdPar, SmoothBasisGcvConfig,
266 SmoothBasisResult,
267};
268
269pub use elastic_fpca::{
271 horiz_fpca, joint_fpca, vert_fpca, HorizFpcaResult, JointFpcaResult, VertFpcaResult,
272};
273
274pub use elastic_regression::{
276 elastic_logistic, elastic_logistic_with_config, elastic_pcr, elastic_pcr_with_config,
277 elastic_regression, elastic_regression_with_config, predict_elastic_logistic,
278 predict_elastic_regression, predict_scalar_on_shape, scalar_on_shape, ElasticConfig,
279 ElasticLogisticResult, ElasticPcrConfig, ElasticPcrResult, ElasticRegressionResult,
280 IndexMethod, PcaMethod, ScalarOnShapeConfig, ScalarOnShapeResult,
281};
282
283pub use spm::{
285 arl0_ewma_t2, arl0_spe, arl0_t2, arl1_t2, elastic_spm_monitor, elastic_spm_phase1,
286 evaluate_rules, ewma_scores, frcc_monitor, frcc_phase1, hotelling_t2, hotelling_t2_regularized,
287 mf_spm_monitor, mf_spm_phase1, mfpca, nelson_rules, profile_monitor, profile_phase1,
288 select_ncomp, spe_contributions, spe_control_limit, spe_limit_robust,
289 spe_moment_match_diagnostic, spe_multivariate, spe_univariate, spm_amewma_monitor,
290 spm_cusum_monitor, spm_cusum_monitor_with_restart, spm_ewma_monitor, spm_mewma_monitor,
291 spm_monitor, spm_monitor_partial, spm_monitor_partial_batch, spm_phase1, spm_phase1_iterative,
292 t2_contributions, t2_contributions_mfpca, t2_control_limit, t2_limit_robust,
293 t2_pc_contributions, t2_pc_significance, western_electric_rules, AmewmaConfig,
294 AmewmaMonitorResult, ArlConfig, ArlResult, ChartRule, ControlLimit, ControlLimitMethod,
295 CusumConfig, CusumMonitorResult, DomainCompletion, ElasticSpmChart, ElasticSpmConfig,
296 ElasticSpmMonitorResult, EwmaConfig, EwmaMonitorResult, FrccChart, FrccConfig,
297 FrccMonitorResult, IterativePhase1Config, IterativePhase1Result, MewmaConfig,
298 MewmaMonitorResult, MfSpmChart, MfpcaConfig, MfpcaResult, NcompMethod, PartialDomainConfig,
299 PartialMonitorResult, ProfileChart, ProfileMonitorConfig, ProfileMonitorResult, RuleViolation,
300 SpmChart, SpmConfig, SpmMonitorResult,
301};
302
303pub use elastic_changepoint::{
305 elastic_amp_changepoint, elastic_fpca_changepoint, elastic_ph_changepoint, ChangepointResult,
306 ChangepointType, FpcaChangepointMethod,
307};
308
309pub use cv::{
311 classification_metrics, create_folds, create_stratified_folds, cv_fdata, cv_fdata_with_metrics,
312 fold_indices, metric_accuracy, metric_f1, metric_mae, metric_precision, metric_r_squared,
313 metric_recall, metric_rmse, regression_metrics, subset_rows, subset_vec, CvFdataResult,
314 CvMetrics, CvType, MetricFn,
315};
316
317pub use smoothing::{
319 cv_smoother, gcv_smoother, knn_gcv, knn_lcv, optim_bandwidth, CvCriterion, KnnCvResult,
320 OptimBandwidthResult,
321};
322
323pub use regression::{fdata_to_pc_1d, fdata_to_pls_1d, FpcaResult, PlsResult};
325#[cfg(feature = "linalg")]
326pub use regression::{ridge_regression_fit, RidgeResult};
327
328pub use clustering::{
330 calinski_harabasz, calinski_harabasz_from_distances, fuzzy_cmeans_fd, kmeans_fd,
331 silhouette_score, silhouette_score_from_distances, FuzzyCmeansResult, KmeansResult,
332};
333
334pub use metric::{
336 dtw_cross_1d, dtw_distance, dtw_self_1d, fourier_cross_1d, fourier_self_1d, hausdorff_3d,
337 hausdorff_cross_1d, hausdorff_cross_2d, hausdorff_self_1d, hausdorff_self_2d, hshift_cross_1d,
338 hshift_self_1d, lp_cross_1d, lp_cross_2d, lp_self_1d, lp_self_2d, soft_dtw_barycenter,
339 soft_dtw_cross_1d, soft_dtw_distance, soft_dtw_div_cross_1d, soft_dtw_div_self_1d,
340 soft_dtw_divergence, soft_dtw_self_1d, SoftDtwBarycenterResult,
341};
342
343pub use depth::{
345 band_1d, fraiman_muniz_1d, fraiman_muniz_2d, functional_spatial_1d, functional_spatial_2d,
346 kernel_functional_spatial_1d, kernel_functional_spatial_2d, modal_1d, modal_2d,
347 modified_band_1d, modified_epigraph_index_1d, random_projection_1d,
348 random_projection_1d_seeded, random_projection_2d, random_tukey_1d, random_tukey_1d_seeded,
349 random_tukey_2d,
350};
351
352pub use outliers::{
354 detect_outliers_lrt, magnitude_shape_outlyingness, outliergram, outliers_threshold_lrt,
355 outliers_threshold_lrt_with_dist, MagnitudeShapeResult, OutligramResult,
356};
357
358pub use utility::{
360 compute_adot, inner_product, inner_product_matrix, integrate_simpson, knn_loocv, knn_predict,
361 pcvm_statistic, rp_stat, RpStatResult,
362};
363
364pub use fdata::{
366 center_1d, deriv_1d, deriv_2d, geometric_median_1d, geometric_median_2d, mean_1d, mean_2d,
367 norm_lp_1d, Deriv2DResult,
368};
369
370pub use basis::{
372 basis_to_fdata, basis_to_fdata_1d, bspline_basis, bspline_basis_from_knots,
373 construct_bspline_knots, difference_matrix, fdata_to_basis, fdata_to_basis_1d, fourier_basis,
374 fourier_basis_with_period, fourier_fit_1d, pspline_evaluate, pspline_fit_1d, pspline_fit_gcv,
375 select_basis_auto_1d, select_fourier_nbasis_gcv, BasisAutoSelectionResult,
376 BasisProjectionResult, FourierFitResult, ProjectionBasisType, PsplineFitResult,
377 SingleCurveSelection,
378};