Skip to main content

entrenar/merge/ensemble/
slerp.rs

1//! ENT-032: Iterative SLERP merging
2
3use super::{slerp_merge as slerp_merge_impl, MergeError, Model, SlerpConfig};
4
5/// Iterative SLERP: merge models pairwise until one remains
6///
7/// For N models: ((m1 + m2) + m3) + ... + mN
8/// where + is SLERP at parameter t
9pub fn iterative_slerp_merge(models: &[Model], t: f32) -> Result<Model, MergeError> {
10    let config = SlerpConfig::new(t)?;
11
12    let mut current = models[0].clone();
13    for model in models.iter().skip(1) {
14        current = slerp_merge_impl(&current, model, &config)?;
15    }
16
17    Ok(current)
18}