Quick Start, Version 6
How is ILNumerics distributed?
Since version 6 ILNumerics Ultimate VS is distributed as individual nuget packages and installed from nuget.org. There is no monolitic installer package anymore. This makes it really easy for you to start with ILNumerics: no installation required!
- Uninstall any system-wide ILNumerics package, if any: version 4 or version 5 ? Uninstall it using Windows "Programs & Features" dialog.
- Setup your seat.
- Add the "ILNumerics Visual Studio Extension" from the Visual Studio Marketplace. You can add the extension directly from Visual Studio, using "Manage Extensions".
- Get your license: free trial licenses can be downloaded from here.
- Open Visual Studio -> Tools -> Options -> ILNumerics -> Licenses
- Enter your license credentials (email address and license key) and click "Activate / Refresh". (more)
- Create your project in Visual Studio.
- Reference our packages using "Manage Nuget Packages".
- Install the required packages:
Which Packages do I need?
Currently, (version 6.0) ILNumerics Ultimate VS consists out of 17 nuget packages. However, in your project you will reference a selection from the following packages only. Which packages are required depends on your application:
ILNumerics.Computing - required for writing numerical algorithms. This is the base package for the ILNumerics Computing Enigine. It ensures all features to be available on all .NET platforms!
Windows, x64 targets: add the ILNumerics.Core.Native package. It provides optimized versions for common tasks, as LAPACK and FFT. They speed things up for now (as long as the managed versions have not catched up with native speed.)
ILNumerics.numpy - adding this package gives full compatibility with numpy's NdArray for ILNumerics n-dimensional arrays.
ILNumerics.Toolboxes.* - several toolboxes for interpolation, optimization, statistics etc. They run on any platform.
ILNumerics.IO.HDF5 - efficient high level, interface for the official HDF5 storage format. Runs on Windows and Linux (/x64).
ILNumerics.Drawing - required for creating technical visualizations, charts and plots. This is the entry package for the ILNumerics Visualization Engine. This package will allow you to create static visualizations on any platform supported by .NET.
ILNumerics.Drawing.Platforms - contains Windows specific controls for Windows.Forms app. All interactive apps reference this package to create fast, interactive visualizations with ILNumerics Visualization Engine, supported by OpenGL and/or GDI+.
ILNumerics.Toolboxes.Drawing2 - more features and plot types for the Visualization Engine.
Find a comprehensive list of all ILNumerics modules / packages here.
Compatibility is one major achievement in version 6: ILNumerics is fully compatible with any platform .NET runs on. No restriction is imposed by native dependencies anymore. All required libraries have been transpiled from their respective FORTRAN repositories into managed code as exact replacements.
ILNumerics packages multi-target .NET Framework (4.6.1) and .NET Standard (2.1). Hence, they can be used for legacy .NET applications, for .NET Core, and .NET 5 ... going further.
Linear algebra, n-dimensional arrays, FFT, LVM ... ILNumerics brings the only reliable implementation in the managed world! Our algorithms are direct translations from accepted FORTRAN sources (LAPACK, FFTPACK, MINPACK). Therefore, ILNumerics finally fulfills an old promise: to execute your algorithms on any platform supported by .NET, without giving up on robustness nor precision.
Additionally, for Windows and Linux (x64) platforms one can utilize optimized native libraries (MKL, provided, see below).
The interactive part of ILNumerics Visualization Engine relies on Windows.Forms, which currently is available on Windows desktop targets only. However, the base functionality (scene graph, all plots and 2d/ 3d visualizations, exports to images / svg) can be used on all platforms.
Currently, code with ILNumerics can be build on Windows. We recommend and support Visual Studio 2017 and 2019.
Create your first computing module