use eqsolver::multivariable::{MultiVarNewton, MultiVarNewtonFD};
use nalgebra::{Matrix2, Vector2};
fn main() {
let f = |v: Vector2<f64>| Vector2::new(v[0].powi(2) - v[1] - 1., v[0] * v[1] - 2.);
let j = |v: Vector2<f64>| Matrix2::new(2. * v[0], -1., v[1], v[0]);
let guess = Vector2::new(1., 1.);
let solution_newton = MultiVarNewton::new(f, j).solve(guess).unwrap();
let solution_newtonfd = MultiVarNewtonFD::new(f).solve(guess).unwrap();
println!("Newton: {solution_newton:?}");
println!("NewtonFD: {solution_newtonfd:?}");
}