numx v0.1.0
Initial public release of numx - a pure C99 scientific computing library for embedded systems. Zero dynamic memory allocation, no external dependencies, runs identically on x86-64, ARM Cortex-M/A, ESP32, and RISC-V.
13 modules across 3 phases
Foundation - linalg, stats, roots, integrate, differentiate, interpolate, poly, ode
Signal processing - signal, fft
Unicorn algorithms - autodiff, compressed_sensing, sketch
Hardware validated on 6 targets
| Platform | Tests |
|---|---|
| x86-64 Intel i7-13700H / Ubuntu / gcc 11.4 | 300/300 |
| ARM64 Apple M4 Pro / macOS / Apple clang 21.0 | 300/300 |
| ARM64 Apple M1 Pro / macOS / Apple clang 17.0 | 300/300 |
| Windows x64 / MSVC 14.51 / float32 | 295/295 |
| Windows x64 / MSVC 14.51 / float64 | 294/294 |
| ESP32-S3 Xtensa LX7 / ESP-IDF v5.5.2 | 548/550 |
Quick start
include(FetchContent)
FetchContent_Declare(numx
GIT_REPOSITORY https://github.com/NIKX-Tech/numx.git
GIT_TAG v0.1.0
)
FetchContent_MakeAvailable(numx)
target_link_libraries(my_target PRIVATE numx::numx)Full documentation at numx.dev.
Distribution
Available via CMake FetchContent, git submodule, Arduino Library Manager, PlatformIO, and Espressif Component Registry. See the Installation guide for all options.
Coming in v0.2.0
- NTT (Number Theoretic Transform) over Z_3329 for CRYSTALS-Kyber/Dilithium