High-performance, architecture-aware implementations of common library functions for Arm processors.
This repository offers a collection of optimized implementations of various library functions tailored for Arm processors. Whether you are developing for embedded systems, mobile devices, or high-performance computing, these routines are designed to maximize efficiency and performance on Arm platforms.
[!NOTE] Arm is a registered trademark of Arm Limited (or its subsidiaries or affiliates).
Here is a quick overview of the repository's layout:
build/: Directory created by the build process.fp/: Floating-point basic arithmetic sources.math/: Elementary math subproject sources.networking/: Networking subproject sources.string/: String routines subproject sources.To build and test the routines in all sub-projects:
bash
git clone https://github.com/ARM-software/optimized-routines.git
cd optimized-routines
bash
cp config.mk.dist config.mk
# Edit config.mk as needed
bash
make
make check
prefix=/usr/bash
make prefix=/path/to/install install
Building and Testing a single subproject:
In order to build a single subproject <sub> use the following commands
bash
make all-<sub>
make check-<sub>
make prefix=/path/to/install install-<sub>
Alternatively, the config.mk file can be updated to specify a list of
sub-projects.
Cross-Building:
For cross-building, set CROSS_COMPILE in config.mk and define EMULATOR
for cross-testing (e.g., using qemu-user or remote access to a target
machine). Refer to examples in config.mk.dist.
This project is licensed under a dual license, allowing you to choose between:
For full details, please refer to the LICENSE file.
We welcome contributions from the community! To contribute:
Please follow the instructions in contributor-agreement.pdf. This step is necessary to allow upstreaming code to projects that require copyright assignment.
Please refer to the main CONTRIBUTING.md for our general contribution guidelines.
Each subdirectory may have its own README.md file detailing
specific contribution requirements. Please review these guidelines before
submitting your contributions.
Each subdirectory has its own maintainers, please refer to MAINTAINERS.md for a list of maintainers to contact.
Regular biannual releases are tagged as vYY.MM. All release are available at
https://github.com/ARM-software/optimized-routines/releases.
The latest release is https://github.com/ARM-software/optimized-routines/releases/tag/v26.01.
For updates and discussions:
Thank you for your interest in the Arm Optimized Routines project. We look forward to your contributions and feedback!
$ claude mcp add optimized-routines \
-- python -m otcore.mcp_server <graph>