Skip to content

numx v0.1.0 - Initial public release

Latest

Choose a tag to compare

@erfanjazebnikoo erfanjazebnikoo released this 10 Jun 12:44
b134e42

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