Contributor
Aman Bhansali

Add BLAS bindings and implementations for linear algebra


Mentors
czgdp1807, Athan Reines
Organization
stdlib
Technologies
c, javascript, node.js, fortran, Native addons
Topics
mathematics, scientific computing, linear algebra, BLAS, Lapack
The goal of this proposal is to add BLAS (Basic Linear Algebra Subprograms) routines and their C, Fortran, and Js implementations for linear algebra. There are three levels for BLAS: Level 1 is for vector-vector operations, Level 2 is for vector-matrix operations, and Level 3 is for matrix-matrix operations. I propose to add the Javascript, C, and free form Fortran implementations for the routines using the fixed form Fortran implementations available. For each package, I will add thorough benchmarks, comprehensive test suites, examples, and a README containing the API signatures for the routine in multiple languages, along with the ndarray case. I will also add the docs folder, which houses a repl.txt file, a typescript file that provides introductions, usage instructions to aid in documentation, and other files to check cases where the function may become invalid. A cblas wrapper will also be added for devices with support for cblas, such as AppleAccelerators, for hardware-optimized performance. This implementation will open doors for domains such as time series analysis or linear algebra operations such as SVD that are built on top of these BLAS routines. A comprehensive suite of BLAS routine APIs will be incorporated into stdlib, and the integration of C and Fortran implementations will aim at optimizing performance and enabling potential hardware-based implementations.