{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,6,5]],"date-time":"2026-06-05T06:54:24Z","timestamp":1780642464479,"version":"3.54.1"},"reference-count":20,"publisher":"Association for Computing Machinery (ACM)","issue":"4","license":[{"start":{"date-parts":[[2018,7,31]],"date-time":"2018-07-31T00:00:00Z","timestamp":1532995200000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["ACM Trans. Math. Softw."],"published-print":{"date-parts":[[2018,12,31]]},"abstract":"<jats:p>Basic Linear Algebra Subroutines for Embedded Optimization (BLASFEO) is a dense linear algebra library providing high-performance implementations of BLAS- and LAPACK-like routines for use in embedded optimization and small-scale high-performance computing, in general. A key difference with respect to existing high-performance implementations of BLAS is that the computational performance is optimized for small- to medium-scale matrices, i.e., for sizes up to a few hundred. BLASFEO comes with three different implementations: a high-performance implementation aimed at providing the highest performance for matrices fitting in cache, a reference implementation providing portability and embeddability and optimized for very small matrices, and a wrapper to standard BLAS and LAPACK providing high performance on large matrices. The three implementations of BLASFEO together provide high-performance dense linear algebra routines for matrices ranging from very small to large. Compared to both open-source and proprietary highly tuned BLAS libraries, for matrices of size up to about 100, the high-performance implementation of BLASFEO is about 20--30% faster than the corresponding level 3 BLAS routines and two to three times faster than the corresponding LAPACK routines.<\/jats:p>","DOI":"10.1145\/3210754","type":"journal-article","created":{"date-parts":[[2018,7,31]],"date-time":"2018-07-31T15:56:23Z","timestamp":1533052583000},"page":"1-30","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":86,"title":["BLASFEO"],"prefix":"10.1145","volume":"44","author":[{"ORCID":"https:\/\/orcid.org\/0000-0001-9440-9699","authenticated-orcid":false,"given":"Gianluca","family":"Frison","sequence":"first","affiliation":[{"name":"University of Freiburg, Department of Microsystems Engineering, Freiburg, Germany"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Dimitris","family":"Kouzoupis","sequence":"additional","affiliation":[{"name":"University of Freiburg, Department of Microsystems Engineering, Freiburg, Germany"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Tommaso","family":"Sartor","sequence":"additional","affiliation":[{"name":"University of Freiburg, Department of Microsystems Engineering, Freiburg, Germany"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Andrea","family":"Zanelli","sequence":"additional","affiliation":[{"name":"University of Freiburg, Department of Microsystems Engineering, Freiburg, Germany"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Moritz","family":"Diehl","sequence":"additional","affiliation":[{"name":"University of Freiburg, Department of Microsystems Engineering and Department of Mathematics"}],"role":[{"vocabulary":"crossref","role":"author"}]}],"member":"320","published-online":{"date-parts":[[2018,7,31]]},"reference":[{"key":"e_1_2_2_1_1","unstructured":"BLASFEO. 2016. Retrieved from https:\/\/github.com\/giaf\/blasfeo.  BLASFEO. 2016. Retrieved from https:\/\/github.com\/giaf\/blasfeo."},{"key":"e_1_2_2_2_1","volume-title":"Eigen v3","year":"2010","unstructured":"Eigen. Eigen v3 . 2010 . Retrieved from http:\/\/eigen.tuxfamily.org\/. Eigen. Eigen v3. 2010. Retrieved from http:\/\/eigen.tuxfamily.org\/."},{"key":"e_1_2_2_3_1","volume-title":"Proceedings of the IFAC World Congress.","author":"Ferreau H. J.","unstructured":"H. J. Ferreau , S. Almer , R. Verschueren , M. Diehl , D. Frick , A. Domahidi , J. L. Jerez , G. Stathopoulos , and C. Jones . 2017. Embedded optimization methods for industrial automatic control . In Proceedings of the IFAC World Congress. H. J. Ferreau, S. Almer, R. Verschueren, M. Diehl, D. Frick, A. Domahidi, J. L. Jerez, G. Stathopoulos, and C. Jones. 2017. Embedded optimization methods for industrial automatic control. In Proceedings of the IFAC World Congress."},{"key":"e_1_2_2_4_1","doi-asserted-by":"publisher","DOI":"10.1007\/s12532-015-0081-7"},{"key":"e_1_2_2_5_1","volume-title":"Proceedings of the European Control Conference (ECC\u201914)","author":"Frison G.","unstructured":"G. Frison , H. B. Sorensen , B. Dammann , and J. B. J\u00f8rgensen . 2014. High-performance small-scale solvers for linear model predictive control . In Proceedings of the European Control Conference (ECC\u201914) . 128--133. G. Frison, H. B. Sorensen, B. Dammann, and J. B. J\u00f8rgensen. 2014. High-performance small-scale solvers for linear model predictive control. In Proceedings of the European Control Conference (ECC\u201914). 128--133."},{"key":"e_1_2_2_7_1","doi-asserted-by":"publisher","DOI":"10.1145\/1356052.1356053"},{"key":"e_1_2_2_9_1","doi-asserted-by":"publisher","DOI":"10.1145\/1377603.1377607"},{"key":"e_1_2_2_10_1","doi-asserted-by":"publisher","DOI":"10.5555\/3014904.3015017"},{"key":"e_1_2_2_11_1","volume-title":"BLAS based on block data structures. Technical report","author":"Henry Greg","unstructured":"Greg Henry . 1992. BLAS based on block data structures. Technical report , Cornell University . Greg Henry. 1992. BLAS based on block data structures. Technical report, Cornell University."},{"key":"e_1_2_2_12_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.automatica.2011.08.020"},{"key":"e_1_2_2_13_1","doi-asserted-by":"publisher","DOI":"10.1109\/TAC.2014.2351991"},{"key":"e_1_2_2_14_1","doi-asserted-by":"publisher","DOI":"10.1145\/292395.292412"},{"key":"e_1_2_2_15_1","doi-asserted-by":"publisher","DOI":"10.1145\/355841.355847"},{"key":"e_1_2_2_16_1","volume-title":"Predictive Control with Constraints","author":"Maciejowski J. M.","unstructured":"J. M. Maciejowski . 2002. Predictive Control with Constraints . Prentice Hall . J. M. Maciejowski. 2002. Predictive Control with Constraints. Prentice Hall."},{"key":"e_1_2_2_17_1","unstructured":"OpenBLAS. 2011. OpenBLAS: An optimized BLAS library. Retrieved from http:\/\/www.openblas.net\/.  OpenBLAS. 2011. OpenBLAS: An optimized BLAS library. Retrieved from http:\/\/www.openblas.net\/."},{"key":"e_1_2_2_18_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-319-23321-5_7"},{"key":"e_1_2_2_19_1","doi-asserted-by":"publisher","DOI":"10.1145\/2854038.2854060"},{"key":"e_1_2_2_20_1","doi-asserted-by":"publisher","DOI":"10.1145\/2755561"},{"key":"e_1_2_2_21_1","doi-asserted-by":"publisher","DOI":"10.1145\/2764454"},{"key":"e_1_2_2_22_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.conengprac.2015.08.012"}],"container-title":["ACM Transactions on Mathematical Software"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3210754","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3210754","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T23:43:52Z","timestamp":1750290232000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3210754"}},"subtitle":["Basic Linear Algebra Subroutines for Embedded Optimization"],"short-title":[],"issued":{"date-parts":[[2018,7,31]]},"references-count":20,"journal-issue":{"issue":"4","published-print":{"date-parts":[[2018,12,31]]}},"alternative-id":["10.1145\/3210754"],"URL":"https:\/\/doi.org\/10.1145\/3210754","relation":{},"ISSN":["0098-3500","1557-7295"],"issn-type":[{"value":"0098-3500","type":"print"},{"value":"1557-7295","type":"electronic"}],"subject":[],"published":{"date-parts":[[2018,7,31]]},"assertion":[{"value":"2017-06-01","order":0,"name":"received","label":"Received","group":{"name":"publication_history","label":"Publication History"}},{"value":"2018-04-01","order":1,"name":"accepted","label":"Accepted","group":{"name":"publication_history","label":"Publication History"}},{"value":"2018-07-31","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}