lapack 0.11.0

The package provides an interface to the Linear Algebra PACKage.
Documentation

LAPACK Version Status

The package provides an interface to the Linear Algebra PACKage.

Documentation

Example (C)

use lapack::c::*;

let n = 3;
let mut a = vec![3.0, 1.0, 1.0, 1.0, 3.0, 1.0, 1.0, 1.0, 3.0];
let mut w = vec![0.0; n as usize];

let info = dsyev(Layout::ColumnMajor, b'V', b'U', n, &mut a, n, &mut w);
assert_eq!(info, 0);

for (one, another) in w.iter().zip(&[2.0, 2.0, 5.0]) {
    assert!((one - another).abs() < 1e-14);
}

Example (Fortran)

use lapack::fortran::*;

let n = 3;
let mut a = vec![3.0, 1.0, 1.0, 1.0, 3.0, 1.0, 1.0, 1.0, 3.0];
let mut w = vec![0.0; n as usize];
let mut work = vec![0.0; 4 * n as usize];
let lwork = 4 * n;
let mut info = 0;

dsyev(b'V', b'U', n, &mut a, n, &mut w, &mut work, lwork, &mut info);
assert_eq!(info, 0);

for (one, another) in w.iter().zip(&[2.0, 2.0, 5.0]) {
    assert!((one - another).abs() < 1e-14);
}

Contribution

Your contribution is highly appreciated. Do not hesitate to open an issue or a pull request. Note that any contribution submitted for inclusion in the project will be licensed according to the terms given in LICENSE.md.