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