bfgs

This package contains an implementation of BFGS, an algorithm for minimizing convex twice-differentiable functions.

BFGS is explained at a high level in the blog post introducing this package.

In this example, we minimize a 2d function:

```rust extern crate bfgs; extern crate ndarray;

use ndarray::{Array, Array1};

fn main() { let x0 = Array::fromvec(vec![8.888, 1.234]); // Chosen arbitrarily let f = |x: &Array1| x.dot(x); let g = |x: &Array1| 2.0 * x; let xmin = bfgs::bfgs(x0, f, g); asserteq!(xmin, Ok(Array::from_vec(vec![0.0, 0.0]))); } ```

This project uses cargo-make for builds; to build, run cargo make all.

License: MIT/Apache-2.0