use dyna3::engine::{Q, irisawa::realize_irisawa_hexlet}; fn main() { const SCALED_TOL: f64 = 1.0e-12; let (config, success, history) = realize_irisawa_hexlet(SCALED_TOL); print!("\nCompleted Gram matrix:{}", config.tr_mul(&*Q) * &config); if success { println!("Target accuracy achieved!"); } else { println!("Failed to reach target accuracy"); } println!("Steps: {}", history.scaled_loss.len() - 1); println!("Loss: {}", history.scaled_loss.last().unwrap()); if success { println!("\nChain diameters:"); println!(" {} sun (given)", 1.0 / config[(3, 3)]); for k in 4..9 { println!(" {} sun", 1.0 / config[(3, k)]); } } println!("\nStep │ Loss\n─────┼────────────────────────────────"); for (step, scaled_loss) in history.scaled_loss.into_iter().enumerate() { println!("{:<4} │ {}", step, scaled_loss); } }