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