gam_terms/smooth.rs
1// Split from the original oversized module; keep included in order.
2include!("smooth/prelude.rs");
3
4mod coefficient_transforms;
5
6mod error;
7
8pub mod input_standardization;
9
10pub mod shape_constraints;
11
12pub mod penalty_priors;
13pub use penalty_priors::{
14 CoefficientGroupSpec, CoefficientSelector, PenaltyBlockGammaPriorMetadata,
15 RealizedCoefficientGroups,
16};
17
18include!("smooth/term_specs.rs");
19
20pub mod structure_analysis;
21use self::structure_analysis::smooth_has_frozen_identifiability;
22pub use self::structure_analysis::{
23 SmoothStructureAnalysis, analyze_smooth_ownership, smooth_term_feature_cols,
24};
25
26// Term-collection design construction (#1521), relocated DOWN from gam-models
27// `fit_orchestration/drivers/design_construction.rs`. The three re-exports are
28// the entry points the staying gam-models drivers still call (via their
29// `use gam_terms::smooth::*` glob): `build_term_collection_design` (public API),
30// `build_term_collection_design_inner` (the joint-build variants that stay in
31// gam-models), and `term_collection_has_one_sided_anchored_bspline`
32// (`spatial_optimization.rs`).
33mod term_design;
34pub use term_design::{
35 build_term_collection_derivative_design, build_term_collection_design,
36 build_term_collection_design_inner, term_collection_has_one_sided_anchored_bspline,
37};
38
39// Spec→spec freezer relocated DOWN from gam-models `fit_orchestration/drivers/
40// spatial_optimization.rs` (#1521). `freeze_term_collection_from_design` is the
41// single canonical model-save freezer; its helper `freeze_smooth_basis_from_metadata`
42// stays private. A legal gam-terms resident (pure gam-terms/gam-problem types) and
43// a shared home the future family sub-crates can call without depending on gam-models.
44mod design_freezing;
45pub use design_freezing::freeze_term_collection_from_design;
46
47#[cfg(test)]
48mod tests;