lapack-inject
LAPACK compatible interface backed by runtime-registered Fortran LAPACK function pointers.
Overview
This crate allows you to use LAPACK functions while the actual computation is performed by Fortran LAPACK functions provided at runtime. This is useful for integrating with Python (scipy) or Julia (libblastrampoline) where Fortran LAPACK pointers are available.
Usage
use register_dgesv;
// Register Fortran dgesv pointer (e.g., from scipy or Julia)
unsafe
// Now lapack_inject exports dgesv_ symbol that can be used by other crates
lapack-src/lapack-sys Compatibility
This crate exports all Fortran-style LAPACK symbols defined in lapack-sys (e.g., dgesv_, dgetrf_, etc.). These symbols are compatible with the lapack-src crate. Register function pointers at runtime, and this crate will provide the symbols that other crates expect from lapack-src.
Supported Functions
All 1315 LAPACK functions from lapack-sys are supported, including:
- Linear solvers (GESV, GBSV, POSV, SYSV, etc.)
- Factorizations (GETRF, POTRF, GEQRF, etc.)
- SVD (GESVD, GESDD, etc.)
- Eigenvalue problems (GEEV, SYEV, HEEV, GEES, etc.)
- And many more...
Additional Netlib LAPACK auxiliary routines not exposed by lapack-sys are also
available, including the complete-pivoting LU pair xGETC2 and xGESC2.
Features
ilp64: Use 64-bit integers for LAPACK indices (ILP64 ABI)
License
Licensed under either of:
- Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.