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