use super::*;
pub(super) fn apply_secondary_predictor_basis_parsimony(terms: &mut [ParsedTerm], n_rows: usize) {
for term in terms.iter_mut() {
if let ParsedTerm::Smooth {
vars,
kind,
options,
..
} = term
{
let canonical = resolve_smooth_type_name(*kind, vars.len(), options);
if !smooth_type_uses_spatial_center_heuristic(&canonical)
|| has_explicit_countwith_basis_alias(options, "centers")
{
continue;
}
let cap = crate::terms::basis::conservative_secondary_centers(n_rows, vars.len());
options.insert(SECONDARY_CENTER_CAP_OPTION.to_string(), cap.to_string());
}
}
}