MIRCO
MIRCO stands for Matrices, Interpolation, Random numbers, Calculus, Optimization. It is the science kit of Hilde, in the place NumPy and SciPy have for Python: a package with the prefix Mirco, under the same licence as Hilde. Source of the language: github.com/heikozim/hilde.
What it holds
- Arrays:
NdArray[T]with views and broadcasting, a wire format and a compute layer. - Linear algebra: LU, Cholesky, QR, least squares, eigenvalues and SVD.
- Interpolation: with splines.
- Optimisation: with Brent, golden section, Nelder-Mead and BFGS.
- Also: FFT, integration and statistics.
- Random numbers: PCG64 and PCG64DXSM;
defaultRnggives the same numbers as NumPy for the same seed (SeedSequence, Ziggurat). - Units: in the type, after SI.
- Files: ROOT of CERN, RNTuple with XXH3 checks, HDF5, netCDF; xz and Zstandard.
- C backend: with BLIS, LAPACK and pocketfft, and calls from Python through ctypes.
"unsafe" only in the bindings
All eight unsafe modules of MIRCO lie in src/Bindings: DuckDB, HDF5, LAPACK, libm, netCDF, Number, pocketfft and Ziggurat. Every other module is safe and is built on them.