ILNumerics.ONAL
0.9.0
Prefix Reserved
dotnet add package ILNumerics.ONAL --version 0.9.0
NuGet\Install-Package ILNumerics.ONAL -Version 0.9.0
<PackageReference Include="ILNumerics.ONAL" Version="0.9.0" />
<PackageVersion Include="ILNumerics.ONAL" Version="0.9.0" />
<PackageReference Include="ILNumerics.ONAL" />
paket add ILNumerics.ONAL --version 0.9.0
#r "nuget: ILNumerics.ONAL, 0.9.0"
#:package ILNumerics.ONAL@0.9.0
#addin nuget:?package=ILNumerics.ONAL&version=0.9.0
#tool nuget:?package=ILNumerics.ONAL&version=0.9.0
ILNumerics.ONAL
Open Numerical Algorithm Language (ONAL) for .NET
Write serious numerical algorithms in .NET: NumPy/MATLAB semantic, proven industrial reliability, and no vendor lock-in.
Open-sourced from the proven, mature core of ILNumerics Computing.
Your algorithms. Your IP. Your language.
Why ILNumerics.ONAL ?
Because serious numerical software needs more than wrapping NumPy:
| Requirement | How ILNumerics.ONAL addresses it |
|---|---|
| ✓ Expressive numerical language | Dense n-dimensional arrays, logicals, cells and complex numbers with MATLAB and NumPy compatible semantics let algorithms be expressed as high-level mathematics rather than low-level optimization code. |
| ✓ Complete numerical foundation | Broad support for elementary functions, linear algebra, transforms and the core building blocks expected from a modern numerical language. |
| ✓ Maintainable algorithm IP | Open-source language core enables long-term maintainability and protects algorithm IP from vendor dependency. |
| ✓ Compatibility and portability | State-of-the-art numerical kernels such as LAPACK are made available through automated .NET translations — enabling true write once, run everywhere across the .NET ecosystem. |
| ✓ Production-grade maturity | Grown and hardened over 15 years alongside .NET, the codebase has been proven in industrial and academic applications since 2011. |
| ✓ Tooling and debuggability | Visual Studio integration, array visualizers, large team support and standard workflows for professional development, maintenance and deployment. |
| ✓ Competitive execution speed | Standard .NET execution delivers practical performance for serious numerical workloads. |
| ✓ Optional path to additional performance | When needed, the same algorithms can optionally run on ILNumerics Computing for runtime optimizations, without changing the algorithm code. |
ILNumerics.ONAL is the open-sourced language core of ILNumerics, providing multidimensional array programming and the fundamental tools for building maintainable numerical algorithm IP in .NET. Write serious numerical algorithms in .NET — with Matlab/NumPy-like semantics, industrial robustness, and no vendor lock-in.
Prototype like MATLAB. Deploy like HPC software.
ILNumerics.ONAL combines:
- N-dimensional arrays
- Mathematical array programming
- Numerical algorithms and transforms
- Developer tooling and visual debugging
- Drop-in migration path to ILNumerics Computing Engine
Inspired by:
- MATLAB
- NumPy
- Julia
but built for .NET.
Features
N-Dimensional Arrays
using ILNumerics;
using static ILNumerics.ILMath;
var A = rand(4,4);
var B = sin(A) + 2*A;
Console.WriteLine(B);
Supports:
- Scalars
- Vectors
- Matrices
- Tensors
- Logical arrays
- Cell arrays
MATLAB / NumPy-like semantics included.
Array Expressions
Write mathematics naturally:
var x = linspace(0,10,1000);
var y =
exp(-x/5) *
sin(4*x)
+ cos(x);
Broadcasting, indexing, slicing and vectorized expressions included.
Linear Algebra
var A = rand(500,500);
Array<double> U = 0.0, V = 0.0;
var S = svd(A, U, V);
// work with S, U, V...
Includes:
- LU
- QR
- SVD
- Eigendecomposition
- Solvers
- Matrix products
Fast Fourier Transform
var signal = sin(20*t) + .4*sin(90*t);
var spectrum = fft(signal);
Built-in signal processing foundations.
Debugging Visualizers
Numerical code should be inspectable.
Features include:
- Visual Studio tooltips
- Graphical array watch window
- Interactive debugging support
Performance Philosophy
ONAL prioritizes:
- Correct semantics
- Stable APIs
- Expressive algorithms
while still delivering competitive speed among .NET numerical DSLs.
Installation
dotnet add package ILNumerics.ONAL
NuGet:
https://www.nuget.org/packages/ILNumerics.ONAL
Quick Start
Matrix Example
using ILNumerics;
var A = rand(3,3);
var B = A.T * A;
Solve Linear System
var A = rand(100,100);
var b = rand(100,1);
var x = linsolve(A,b);
Signal Processing Example
var fs = 1000;
var t =
linspace(
0,
1,
fs);
var signal =
sin(2*pi*50*t)
+ .5*sin(2*pi*120*t);
var spectrum = fft(signal);
Contributing
Contributions welcome.
git clone https://github.com/ILNumerics/ILNumerics.ONAL
Open an issue or PR.
License
MIT
Citation
If you use ONAL in research:
@software{ilnumerics_onal,
title={ILNumerics.ONAL},
author={ILNumerics GmbH},
year={2026},
url={https://github.com/ILNumerics/ILNumerics.ONAL}
}
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net8.0
- System.Runtime.CompilerServices.Unsafe (>= 6.1.2)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.9.0 | 46 | 4/29/2026 |