OpenBLAS FFI bindings
This crate contains OpenBLAS FFI bindings.
Current FFI version is (OpenBLAS v0.3.29)[https://github.com/OpenMathLib/OpenBLAS/releases/tag/v0.3.29].
OpenBLAS (C/Fortran/ASM) source code is available on (github)[https://github.com/OpenMathLib/OpenBLAS].
This crate is not official bindgen project. It is originally intended to serve rust tensor toolkit RSTSR and rust electronic structure toolkit REST.
- Audience: Anyone uses OpenBLAS function may also find it useful, not only RSTSR or REST program developers.
- FFI-only: Program developer is not required to actually install every components in LAPACK (especially LAPACKE). Rust FFI bindings is only declaration.
- Do not include LAPACK and LAPACKE: For LAPACK or LAPACKE, we refer to netlib LAPACK FFI bindings (such as (
lapack-sys)[https://crates.io/crates/lapack-sys] orrstsr-lapack-ffi). OpenBLAS's declaration of LAPACK functions is no difference to netlib LAPACK, but only different in implementation.
Cargo features
ilp64: Useint64_tfor dimension specification, or lapack error code types if this feature specified. Otherwise, useint32_t.- Please note that in
f77blas.rs, error code is returned byc_int; incblas.rs, OpenBLAS utility functions usec_intfor input or output.
- Please note that in
quad_precisionandex_precision: Specify type extra-precisionxdoubletype inf77blas.rs. Probably few people will require these features.
Crate structure
header: Header files copied (or renamed) from original source.scripts: Script to generate FFI bindgens.src: FFI bindings:f77blas: Corresponds tof77blas.hheader in compiled library include (orcommon_interface.hin OpenBLAS original source code). BLAS and some LAPACK functions that implemented by OpenBLAS, no post-suffix underscore.cblas: Corresponds tocblas.hheader. Original CBLAS included, along with OpenBLAS utility functions (e.g.openblas_get_num_threads) and some BLAS extensions (e.g.cblas_zgemm_batch).