MCPcopy Index your code
hub / github.com/ARM-software/optimized-routines

github.com/ARM-software/optimized-routines @v26.01

Chat with this repo
repository ↗ · DeepWiki ↗ · release v26.01 ↗ · + Follow
1,812 symbols 4,239 edges 443 files 380 documented · 21%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

🚀 Arm Optimized Routines

master branch

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).


📂 Repository Structure

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.

🛠️ Building and Testing

To build and test the routines in all sub-projects:

  1. Clone the repository:

bash git clone https://github.com/ARM-software/optimized-routines.git cd optimized-routines

  1. Set up the build configuration:

bash cp config.mk.dist config.mk # Edit config.mk as needed

  1. Build and test:

bash make make check

  1. Install: By default install headers and library at 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.


📜 Licensing

This project is licensed under a dual license, allowing you to choose between:

  • MIT License
  • Apache License 2.0 with LLVM Exceptions

For full details, please refer to the LICENSE file.


🤝 Contributing

We welcome contributions from the community! To contribute:

  1. Sign the Contributor Assignment Agreement:

Please follow the instructions in contributor-agreement.pdf. This step is necessary to allow upstreaming code to projects that require copyright assignment.

  1. Review Contribution Guidelines:

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.


📦 Releases

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.


📬 Stay Connected

For updates and discussions:


Thank you for your interest in the Arm Optimized Routines project. We look forward to your contributions and feedback!

Core symbols most depended-on inside this repo

sv_f64
called by 252
math/aarch64/sve/sv_math.h
sv_f32
called by 171
math/aarch64/sve/sv_math.h
asuint64
called by 163
math/math_config.h
v_f64
called by 100
math/aarch64/advsimd/v_math.h
asuint
called by 95
math/math_config.h
v_f32
called by 89
math/aarch64/advsimd/v_math.h
asfloat
called by 64
math/math_config.h
eval_as_double
called by 37
math/math_config.h

Shape

Function 1,410
Class 367
Method 23
Enum 12

Languages

C70%
C++28%
Python2%

Modules by API surface

math/test/ulp_wrappers.h93 symbols
math/test/mathbench_wrappers.h73 symbols
math/test/rtest/dotest.c63 symbols
math/test/ulp.c54 symbols
math/math_config.h49 symbols
math/aarch64/sve/sv_poly_generic.h44 symbols
math/poly_generic.h43 symbols
math/test/rtest/semi.c42 symbols
math/test/mathbench.c34 symbols
fp/auxiliary/ddiv-prove.py33 symbols
math/test/mathtest.c29 symbols
math/test/rtest/wrappers.c28 symbols

For agents

$ claude mcp add optimized-routines \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact