ILNumerics - Technical Computing

Modern High Performance Tools for Technical

Computing and Visualization in Industry and Science

 

Computing Engine - Setup & Rules

This is the first section of the in-depth documentation of ILNumerics Computing Engine. For a quick basic introduction go here. To learn everything read on!

Module references

On Windows computers and when using the ILNumerics installer, ILNumerics modules are installed into the GAC. From your project, reference the ILNumerics.Core module. This module is always required. In order to write mathematical algorithms include the ILNumerics.Computing module and (optionally) the ILNumerics.numpy module too. Toolboxes come as individual modules which are referenced as required. 

Useful Namespaces and imports

The following directives should be added at the beginning of your code files. They save a bunch of namespace and class specifiers and make your code a lot more readable. Note that most of our code examples throughout this documentation expect those directives to exist in order for the snippet to compile.

...and for Visual Basic:

Note, that in order to use numpy array style and / or numpy array extensions, - subarray features a.s.o. you must simply reference the module ILNumerics.numpy in your project. No other actions (imports) are required in code.

Limitations on C# language features

Before learning the details of what can be done with ILNumerics, let's accept some limitations! The following features of the C# language are not compatible with the array types of ILNumerics and their use is not supported:

Limitations on Visual Basic language features

The type for all arrays must be defined explicitely. Just like the var keyword in C#, in Visual Basic it is not allowed to omit array declarations:

Function Rules - Overview

Performance is made out of only three simple rules! They are described in detail in the next section and summarized in the following example function:

Essential function rules of ILNumerics: The first rule declares specific array types for input parameters and return values in function declarations. The second rule creates artificial scopes around the function body and the third rule handles assignments to output parameters.