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;
67
68pub mod covariance;
70
71pub mod spm;
73
74pub mod conformal;
76pub mod elastic;
77pub mod elastic_changepoint;
78pub mod elastic_explain;
79pub mod elastic_fpca;
80pub mod elastic_regression;
81pub mod explain;
82pub mod explain_generic;
83pub mod prelude;
84pub mod smooth_basis;
85
86pub use matrix::{FdCurveSet, FdMatrix};
88
89pub use andrews::{andrews_loadings, andrews_transform, AndrewsLoadings, AndrewsResult};
91
92pub use covariance::{
94 covariance_matrix, generate_gaussian_process, CovKernel, GaussianProcessResult,
95};
96
97pub use alignment::{
99 align_to_target, alignment_quality, amplitude_distance, amplitude_self_distance_matrix,
100 compose_warps, elastic_align_pair, elastic_align_pair_constrained, elastic_align_pair_nd,
101 elastic_align_pair_with_landmarks, elastic_cross_distance_matrix, elastic_decomposition,
102 elastic_distance, elastic_distance_nd, elastic_self_distance_matrix, karcher_mean,
103 pairwise_consistency, phase_distance_pair, phase_self_distance_matrix, reparameterize_curve,
104 srsf_inverse, srsf_inverse_nd, srsf_transform, srsf_transform_nd, tsrvf_from_alignment,
105 tsrvf_from_alignment_with_method, tsrvf_inverse, tsrvf_transform, tsrvf_transform_with_method,
106 warp_complexity, warp_smoothness, AlignmentQuality, AlignmentResult, AlignmentResultNd,
107 AlignmentSetResult, ConstrainedAlignmentResult, DecompositionResult, KarcherMeanResult,
108 TransportMethod, TsrvfResult,
109};
110
111pub use helpers::{
113 cumulative_trapz, extract_curves, gradient, gradient_nonuniform, gradient_uniform, l2_distance,
114 linear_interp, simpsons_weights, simpsons_weights_2d, trapz, DEFAULT_CONVERGENCE_TOL,
115 NUMERICAL_EPS,
116};
117
118pub use warping::{
120 exp_map_sphere, gam_to_psi, gam_to_psi_smooth, inner_product_l2, inv_exp_map_sphere,
121 invert_gamma, l2_norm_l2, normalize_warp, phase_distance, psi_to_gam,
122};
123
124pub use seasonal::{
126 autoperiod, autoperiod_fdata, cfd_autoperiod, cfd_autoperiod_fdata, hilbert_transform, sazed,
127 sazed_fdata, AutoperiodCandidate, AutoperiodResult, CfdAutoperiodResult, ChangeDetectionResult,
128 ChangePoint, ChangeType, DetectedPeriod, InstantaneousPeriod, Peak, PeakDetectionResult,
129 PeriodEstimate, SazedComponents, SazedResult, StrengthMethod,
130};
131
132pub use landmark::{
134 detect_and_register, detect_landmarks, landmark_register, Landmark, LandmarkKind,
135 LandmarkResult,
136};
137
138pub use detrend::{DecomposeResult, StlConfig, StlResult, TrendResult};
140
141pub use simulation::{EFunType, EValType};
143
144pub use irreg_fdata::{IrregFdata, KernelType};
146
147pub use tolerance::{
149 conformal_prediction_band, elastic_tolerance_band, elastic_tolerance_band_with_config,
150 equivalence_test, equivalence_test_one_sample, exponential_family_tolerance_band,
151 fpca_tolerance_band, phase_tolerance_band, scb_mean_degras, BandType,
152 ElasticToleranceBandResult, ElasticToleranceConfig, EquivalenceBootstrap,
153 EquivalenceTestResult, ExponentialFamily, MultiplierDistribution, NonConformityScore,
154 PhaseToleranceBand, ToleranceBand,
155};
156
157pub use famm::{fmm, fmm_predict, fmm_test_fixed, FmmResult, FmmTestResult};
159
160pub use function_on_scalar::{
162 fanova, fosr, fosr_fpc, predict_fosr, FanovaResult, FosrFpcResult, FosrResult,
163};
164pub use function_on_scalar_2d::{fosr_2d, predict_fosr_2d, FosrResult2d, Grid2d};
165
166pub use scalar_on_function::{
168 bootstrap_ci_fregre_lm, bootstrap_ci_functional_logistic, fregre_basis_cv, fregre_cv,
169 fregre_huber, fregre_l1, fregre_lm, fregre_np_cv, fregre_np_mixed, functional_logistic,
170 model_selection_ncomp, predict_fregre_lm, predict_fregre_np, predict_fregre_robust,
171 predict_functional_logistic, BootstrapCiResult, FregreBasisCvResult, FregreCvResult,
172 FregreLmResult, FregreNpCvResult, FregreNpResult, FregreRobustResult, FunctionalLogisticResult,
173 ModelSelectionResult, SelectionCriterion,
174};
175
176pub use explain_generic::{
178 generic_ale, generic_anchor, generic_conditional_permutation_importance,
179 generic_counterfactual, generic_domain_selection, generic_friedman_h, generic_lime,
180 generic_pdp, generic_permutation_importance, generic_prototype_criticism, generic_saliency,
181 generic_shap_values, generic_sobol_indices, generic_stability, generic_vif, FpcPredictor,
182 TaskType,
183};
184
185pub use elastic_explain::{elastic_pcr_attribution, ElasticAttributionResult};
187pub use explain::{
188 anchor_explanation, anchor_explanation_logistic, beta_decomposition,
189 beta_decomposition_logistic, calibration_diagnostics, conditional_permutation_importance,
190 conditional_permutation_importance_logistic, conformal_prediction_residuals,
191 counterfactual_logistic, counterfactual_regression, dfbetas_dffits, domain_selection,
192 domain_selection_logistic, expected_calibration_error, explanation_stability,
193 explanation_stability_logistic, fpc_ale, fpc_ale_logistic, fpc_permutation_importance,
194 fpc_permutation_importance_logistic, fpc_shap_values, fpc_shap_values_logistic, fpc_vif,
195 fpc_vif_logistic, friedman_h_statistic, friedman_h_statistic_logistic, functional_pdp,
196 functional_pdp_logistic, functional_saliency, functional_saliency_logistic,
197 influence_diagnostics, lime_explanation, lime_explanation_logistic, loo_cv_press,
198 pointwise_importance, pointwise_importance_logistic, prediction_intervals, prototype_criticism,
199 regression_depth, regression_depth_logistic, significant_regions, significant_regions_from_se,
200 sobol_indices, sobol_indices_logistic, AleResult, AnchorCondition, AnchorResult, AnchorRule,
201 BetaDecomposition, CalibrationDiagnosticsResult, ConditionalPermutationImportanceResult,
202 ConformalPredictionResult, CounterfactualResult, DepthType, DfbetasDffitsResult,
203 DomainSelectionResult, EceResult, FpcPermutationImportance, FpcShapValues, FriedmanHResult,
204 FunctionalPdpResult, FunctionalSaliencyResult, ImportantInterval, InfluenceDiagnostics,
205 LimeResult, LooCvResult, PointwiseImportanceResult, PredictionIntervalResult,
206 PrototypeCriticismResult, RegressionDepthResult, SignificanceDirection, SignificantRegion,
207 SobolIndicesResult, StabilityAnalysisResult, VifResult,
208};
209
210pub use classification::{
212 fclassif_cv, fclassif_cv_with_config, fclassif_dd, fclassif_kernel, fclassif_knn,
213 fclassif_knn_fit, fclassif_lda, fclassif_lda_fit, fclassif_qda, fclassif_qda_fit,
214 ClassifCvConfig, ClassifCvResult, ClassifFit, ClassifMethod, ClassifResult,
215};
216
217pub use conformal::{
219 conformal_classif, conformal_elastic_logistic, conformal_elastic_pcr,
220 conformal_elastic_pcr_with_config, conformal_elastic_regression,
221 conformal_elastic_regression_with_config, conformal_fregre_lm, conformal_fregre_np,
222 conformal_generic_classification, conformal_generic_regression, conformal_logistic,
223 cv_conformal_classification, cv_conformal_regression, jackknife_plus_regression,
224 ClassificationScore, ConformalClassificationResult, ConformalConfig, ConformalMethod,
225 ConformalRegressionResult,
226};
227
228pub use gmm::{
230 gmm_cluster, gmm_cluster_with_config, gmm_em, predict_gmm, CovType, GmmClusterConfig,
231 GmmClusterResult, GmmResult,
232};
233
234pub use streaming_depth::{
236 FullReferenceState, RollingReference, SortedReferenceState, StreamingBd, StreamingDepth,
237 StreamingFraimanMuniz, StreamingMbd,
238};
239
240pub use smooth_basis::{
242 basis_nbasis_cv, basis_nbasis_cv_with_config, bspline_penalty_matrix, fourier_penalty_matrix,
243 smooth_basis, smooth_basis_gcv, smooth_basis_gcv_with_config, BasisCriterion,
244 BasisNbasisCvConfig, BasisNbasisCvResult, BasisType, FdPar, SmoothBasisGcvConfig,
245 SmoothBasisResult,
246};
247
248pub use elastic_fpca::{
250 horiz_fpca, joint_fpca, vert_fpca, HorizFpcaResult, JointFpcaResult, VertFpcaResult,
251};
252
253pub use elastic_regression::{
255 elastic_logistic, elastic_logistic_with_config, elastic_pcr, elastic_pcr_with_config,
256 elastic_regression, elastic_regression_with_config, predict_elastic_logistic,
257 predict_elastic_regression, predict_scalar_on_shape, scalar_on_shape, ElasticConfig,
258 ElasticLogisticResult, ElasticPcrConfig, ElasticPcrResult, ElasticRegressionResult,
259 IndexMethod, PcaMethod, ScalarOnShapeConfig, ScalarOnShapeResult,
260};
261
262pub use spm::{
264 ewma_scores, frcc_monitor, frcc_phase1, hotelling_t2, mf_spm_monitor, mf_spm_phase1, mfpca,
265 spe_contributions, spe_control_limit, spe_multivariate, spe_univariate, spm_ewma_monitor,
266 spm_monitor, spm_phase1, t2_contributions, t2_control_limit, ControlLimit, EwmaConfig,
267 EwmaMonitorResult, FrccChart, FrccConfig, FrccMonitorResult, MfSpmChart, MfpcaConfig,
268 MfpcaResult, SpmChart, SpmConfig, SpmMonitorResult,
269};
270
271pub use elastic_changepoint::{
273 elastic_amp_changepoint, elastic_fpca_changepoint, elastic_ph_changepoint, ChangepointResult,
274 ChangepointType, FpcaChangepointMethod,
275};
276
277pub use cv::{
279 create_folds, create_stratified_folds, cv_fdata, fold_indices, subset_rows, subset_vec,
280 CvFdataResult, CvMetrics, CvType,
281};
282
283pub use smoothing::{
285 cv_smoother, gcv_smoother, knn_gcv, knn_lcv, optim_bandwidth, CvCriterion, KnnCvResult,
286 OptimBandwidthResult,
287};
288
289pub use regression::{fdata_to_pc_1d, fdata_to_pls_1d, FpcaResult, PlsResult};
291#[cfg(feature = "linalg")]
292pub use regression::{ridge_regression_fit, RidgeResult};
293
294pub use clustering::{
296 calinski_harabasz, fuzzy_cmeans_fd, kmeans_fd, silhouette_score, FuzzyCmeansResult,
297 KmeansResult,
298};
299
300pub use metric::{
302 dtw_cross_1d, dtw_distance, dtw_self_1d, fourier_cross_1d, fourier_self_1d, hausdorff_3d,
303 hausdorff_cross_1d, hausdorff_cross_2d, hausdorff_self_1d, hausdorff_self_2d, hshift_cross_1d,
304 hshift_self_1d, lp_cross_1d, lp_cross_2d, lp_self_1d, lp_self_2d, soft_dtw_barycenter,
305 soft_dtw_cross_1d, soft_dtw_distance, soft_dtw_div_cross_1d, soft_dtw_div_self_1d,
306 soft_dtw_divergence, soft_dtw_self_1d, SoftDtwBarycenterResult,
307};
308
309pub use depth::{
311 band_1d, fraiman_muniz_1d, fraiman_muniz_2d, functional_spatial_1d, functional_spatial_2d,
312 kernel_functional_spatial_1d, kernel_functional_spatial_2d, modal_1d, modal_2d,
313 modified_band_1d, modified_epigraph_index_1d, random_projection_1d,
314 random_projection_1d_seeded, random_projection_2d, random_tukey_1d, random_tukey_1d_seeded,
315 random_tukey_2d,
316};
317
318pub use outliers::{detect_outliers_lrt, outliers_threshold_lrt, outliers_threshold_lrt_with_dist};
320
321pub use utility::{
323 compute_adot, inner_product, inner_product_matrix, integrate_simpson, knn_loocv, knn_predict,
324 pcvm_statistic, rp_stat, RpStatResult,
325};
326
327pub use fdata::{
329 center_1d, deriv_1d, deriv_2d, geometric_median_1d, geometric_median_2d, mean_1d, mean_2d,
330 norm_lp_1d, Deriv2DResult,
331};
332
333pub use basis::{
335 basis_to_fdata, basis_to_fdata_1d, bspline_basis, difference_matrix, fdata_to_basis,
336 fdata_to_basis_1d, fourier_basis, fourier_basis_with_period, fourier_fit_1d, pspline_fit_1d,
337 select_basis_auto_1d, select_fourier_nbasis_gcv, BasisAutoSelectionResult,
338 BasisProjectionResult, FourierFitResult, ProjectionBasisType, PsplineFitResult,
339 SingleCurveSelection,
340};