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