pub fn compute_geometry_split(weights: &[usize], split_factor: i32) -> usize
Split packs into “roll up” vs “keep” using Git’s geometric progression rules.