1use resopt::{ConstrainedResidualProblem, LinearResidual, Loss, Matrix};
2
3fn main() -> Result<(), Box<dyn std::error::Error>> {
4 let residual = LinearResidual::new(
17 Matrix::from_row_major(3, 2, vec![1.0, 0.0, 0.0, 1.0, 1.0, 1.0])?,
18 vec![1.0, 2.0, 2.5],
19 )?;
20
21 let problem = ConstrainedResidualProblem::new(residual, Loss::L2Squared)?;
22
23 let result = problem.solve()?;
24
25 println!("=== basic_l2 ===");
26 println!("status : {:?}", result.status());
27 println!("objective : {:?}", result.objective_value());
28 println!("diagnostics : {:?}", result.diagnostics());
29
30 if let Some(solution) = result.solution() {
31 println!("x : {:?}", solution.x());
32 println!("residual : {:?}", solution.residual());
33 } else {
34 println!("no solution returned");
35 }
36
37 Ok(())
38}