  BLASFEO is a dense linear algebra library providing high-performance
implementations of BLAS- and LAPACK-like routines for use in embedded
optimization and other applications targeting relatively small matrices.
BLASFEO defines an API which uses a packed matrix format as its native format.
This format is analogous to the internal memory buffers of optimized BLAS, but
it is exposed to the user and it removes the packing cost from the routine
call. For matrices fitting in cache, BLASFEO outperforms optimized BLAS
implementations, both open-source and proprietary. This paper investigates the
addition of a standard BLAS API to the BLASFEO framework, and proposes an
implementation switching between two or more algorithms optimized for different
matrix sizes. Thanks to the modular assembly framework in BLASFEO, tailored
linear algebra kernels with mixed column- and panel-major arguments are easily
developed. This BLAS API has lower performance than the BLASFEO API, but it
nonetheless outperforms optimized BLAS and especially LAPACK libraries for
matrices fitting in cache. Therefore, it can boost a wide range of
applications, where standard BLAS and LAPACK libraries are employed and the
matrix size is moderate. In particular, this paper investigates the benefits in
scientific programming languages such as Octave, SciPy and Julia.
