Open
Description
Description
To support linear algebra operations we want to have interfaces/wrappers for BLAS and LAPACK, maybe even to BLACS, PBLAS and ScaLAPACK at some point. Before we start working on a high-level API, there are additional stages to consider. For this issue I want to focus on BLAS only, because the size of the problem is much more limited than the other linear algebra libraries and we can flesh out the workflow
- How to include BLAS in stdlib?
- building (reference) BLAS from source with fpm and/or CMake sounds like a bad idea (performance), but might be a fallback
- linking against system BLAS and optimized BLAS libraries like MKL or OpenBLAS
- How due we provide the BLAS functionality?
- interface modules like BLAS95 are available
- do we reproduce the actual reference BLAS interface (doesn't include
intent
in the dummy arguments) - do we overload the names to drop the s/d/c/z prefixes
- are the interfaces part of stdlib or bundled from a separate project
- How do we abstract the operations available in BLAS?
- how many layers of abstractions do we want?
- just simple wrapper to infer dimensions
- overloaded operators