# BLASFEO

> Open source linear algebra library

**Wikidata**: [Q134347773](https://www.wikidata.org/wiki/Q134347773)  
**Source**: https://4ort.xyz/entity/blasfeo

## Summary  
BLASFEO (BLAS For Embedded Optimization) is an open‑source linear‑algebra library written primarily in assembly language. It is designed for high‑performance numerical computing on embedded platforms and is released under a permissive 2‑clause BSD license.

## Key Facts  
- **Software type:** Open‑source linear‑algebra library (instance of *software*).  
- **Primary language:** Implemented in assembly language.  
- **License:** 2‑clause BSD License (see <https://github.com/giaf/blasfeo/blob/master/LICENSE.txt>).  
- **Initial stable release:** Version 0.1.0 on 19 Oct 2018.  
- **Latest stable release:** Version 0.1.4.2 (preferred) announced 20 Feb 2025.  
- **Website:** <https://blasfeo.syscop.de/> (English).  
- **Source repository:** <https://github.com/giaf/blasfeo>.  
- **Integration:** Frequently used together with HPIPM, a high‑performance interior‑point method solver.  
- **Alias:** Also known as “BLAS For Embedded Optimization.”  

## FAQs  
### Q: What is BLASFEO used for?  
A: BLASFEO provides fast linear‑algebra kernels (e.g., matrix‑vector products) optimized for embedded systems, enabling efficient numerical algorithms such as model‑predictive control.  

### Q: Which programming language is BLASFEO written in?  
A: The core of BLASFEO is written in assembly language to exploit low‑level hardware features for maximum performance.  

### Q: Under what license is BLASFEO distributed?  
A: BLASFEO is released under the 2‑clause BSD License, a permissive open‑source license.  

### Q: Does BLASFEO work with other optimization tools?  
A: Yes, it is commonly paired with HPIPM, a high‑performance interior‑point method solver, to form a complete embedded‑optimization stack.  

### Q: What is the most recent version of BLASFEO?  
A: The preferred, most recent version is 0.1.4.2, released on 20 Feb 2025.  

## Why It Matters  
Embedded devices—ranging from automotive controllers to IoT sensors—require numerical routines that are both lightweight and extremely fast. Traditional BLAS libraries are often tuned for desktop or server CPUs and can be too heavyweight for constrained hardware. BLASFEO fills this gap by delivering a highly optimized linear‑algebra stack written in assembly, which extracts peak performance from low‑power processors. Its permissive BSD license encourages adoption in commercial and academic projects without licensing friction. By integrating seamlessly with HPIPM, BLASFEO enables end‑to‑end solutions for real‑time model‑predictive control and other embedded‑optimization applications, accelerating development cycles and expanding the feasible complexity of algorithms that can run on resource‑limited platforms.  

## Notable For  
- **Assembly‑level optimization:** Uses hand‑crafted assembly to achieve performance beyond generic BLAS implementations on embedded CPUs.  
- **Embedded‑focus:** Tailored specifically for the memory and compute constraints of embedded hardware.  
- **BSD licensing:** The 2‑clause BSD license permits unrestricted commercial use and redistribution.  
- **HPIPM compatibility:** Designed to work hand‑in‑hand with the HPIPM interior‑point solver, forming a complete optimization toolkit.  
- **Active versioning:** Maintains a clear, stable release cadence from 0.1.0 (2018) through 0.1.4.2 (2025).  

## Body  

### Overview  
BLASFEO (BLAS For Embedded Optimization) is a software library that implements core linear‑algebra operations needed in numerical optimization. It targets embedded platforms where computational resources are limited.  

### Licensing  
- Distributed under the **2‑clause BSD License**.  
- The license text is available in the repository’s `LICENSE.txt` file.  

### Version History  
| Version | Release Date | Status |
|---------|--------------|--------|
| 0.1.0 | 19 Oct 2018 | Stable |
| 0.1.1 | 4 Feb 2019 | Stable |
| 0.1.2 | 13 Aug 2020 | Stable |
| 0.1.3 | 10 Feb 2022 | Stable |
| 0.1.4 | 20 Nov 2024 | Stable |
| 0.1.4.1 | 20 Nov 2024 | Stable |
| 0.1.4.2 | 20 Feb 2025 | Preferred (latest) |

Each stable release is tagged in the GitHub repository and includes performance improvements and bug fixes.  

### Technical Architecture  
- **Core implementation:** Hand‑written assembly language routines for matrix‑vector and matrix‑matrix operations.  
- **High‑level API:** Provides BLAS‑compatible function signatures, easing integration with existing codebases.  
- **Memory layout:** Optimized for small‑to‑medium sized matrices typical in embedded control loops.  

### Integration with HPIPM  
- **HPIPM** (High‑Performance Interior‑Point Method) is a solver that relies on fast linear‑algebra kernels.  
- BLASFEO supplies these kernels, reducing the overall solution time for model‑predictive control problems on embedded hardware.  

### Availability  
- **Website:** <https://blasfeo.syscop.de/> (English).  
- **Source code:** Hosted on GitHub at <https://github.com/giaf/blasfeo>.  
- **Package managers:** Listed in Repology under the project name **blasfeo**.  

### Usage Scenarios  
- Real‑time model‑predictive control on microcontrollers.  
- Embedded signal processing where matrix operations dominate.  
- Academic research on lightweight optimization algorithms.  

---  

*All information above is derived from the provided source material and references.*

## References

1. [Source](https://github.com/giaf/blasfeo/blob/master/LICENSE.txt)
2. [Source](https://github.com/giaf/blasfeo/releases/tag/0.1.4.2)
3. [Release 0.1.0. 2018](https://github.com/giaf/blasfeo/releases/tag/0.1.0)
4. [Release 0.1.1. 2019](https://github.com/giaf/blasfeo/releases/tag/0.1.1)
5. [Release 0.1.2. 2020](https://github.com/giaf/blasfeo/releases/tag/0.1.2)
6. [Release 0.1.3. 2022](https://github.com/giaf/blasfeo/releases/tag/0.1.3)
7. [Release 0.1.4. 2024](https://github.com/giaf/blasfeo/releases/tag/0.1.4)
8. [Release 0.1.4.1. 2024](https://github.com/giaf/blasfeo/releases/tag/0.1.4.1)