1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
//! Interface to the [Linear Algebra PACKage][lapack].
//!
//! ## Configuration
//!
//! The underlying implementation of LAPACK to compile, if needed, and link to
//! can be chosen among the following options:
//!
//! * Apple’s [Accelerate framework][accelerate] (macOS only),
//! * Netlib’s [reference implementation][netlib], and
//! * [OpenBLAS][openblas] (default).
//!
//! An implementation can be chosen using the package’s features as follows:
//!
//! ```toml
//! [dependencies]
//! # Apple’s Accelerate framework
//! lapack = { version = "0.13", default-features = false, features = ["accelerate"] }
//! # Netlib’s reference implementation
//! lapack = { version = "0.13", default-features = false, features = ["netlib"] }
//! # OpenBLAS
//! lapack = { version = "0.13", default-features = false, features = ["openblas"] }
//! # OpenBLAS
//! lapack = { version = "0.13" }
//! ```
//!
//! [accelerate]: https://developer.apple.com/reference/accelerate
//! [lapack]: https://en.wikipedia.org/wiki/LAPACK
//! [netlib]: http://www.netlib.org/lapack
//! [openblas]: http://www.openblas.net

extern crate lapack_sys;
extern crate libc;
extern crate num_complex as num;

/// A complex number with 32-bit parts.
#[allow(non_camel_case_types)]
pub type c32 = num::Complex<f32>;

/// A complex number with 64-bit parts.
#[allow(non_camel_case_types)]
pub type c64 = num::Complex<f64>;

#[cfg(not(feature = "accelerate"))]
pub mod c;

pub mod fortran;