The ILNumerics Changelog

Major improvements found in an ILNumerics release are listed here. Go to the update page in order to fetch the latest version.

Changes in version 4.2

  •  Removed reference to VisualStudio.DebuggerVisualizer v11 from ILNumerics.dll (causing problems in non-VS setups)
  • Fixed #205: ILPlotCube.Reset() now handles very small view limits down to ILMath.eps (10e-16)
  • ILTripod: Arrow3D style implemented + interactive capabilities (see reference docu for ILTripod)
  • ILCamera: new properties: AllowPan, AllowRotation, AllowZoom eases the control of interactive options
  • Shapes: new shapes available, Shapes.Cone(s), Shapes.Cylinder(s), ILArrow3D
  • ILShape.Target: made set accessor public, allowing to configure all shapes as RenderTarget World or Screen
  • Fixed a bug in OpenGL renderer: auto-hover marking for all shapes now working as expected
  • Fixed a bug in ILPanel: the sharing of identical ILScenes in multiple ILPanel.Scene is possible for OGL drivers now
  • Added http://ilnumerics.net/scene-management.html
  • IO.HDF5.H5Dataset: made constructor parameter 'data' obligatory, preventing from accidentally creating too small chunk sizes
  • Beautified debug output (hover datatips) in Visual Studio for Visual Basic code on ILArray(Of T)

Changes in version 4.1

  • Implicit conversion from System.Array to ILArray: support unmatching element types and scalar ILArray as source elements (#204)

  • made internal and protected internal members public: ILNode.Copy, ILNode.Synchronize. Allows the creation of custom scene node objects.

  • Improved Zoom for ILCamera: new property ZoomFactor prevents from Z plane clipping on extreme zoom settings.

  • Custom colormaps allowed for arbitrary objects. Use ILColormap.Map(ILArray<float>,float min, float max) for mapping values to colors

  • Colorbar now able to be used on arbitrary objects more easily: see: ILStaticColormapProvider in reference documentation.

  • Array Visualizer now working with arbitrary language packs on all supported ILArray<T> expressions.

  • new ILTripod object: shows the current camera rotation as X-Y-Z tripod

  • fixed colorbar and axis for use in non-plotcube szenarios

  • fixed ILOGLLabel depth error on non-camera setups (when used in ILScreenObject)

Changes in Version 4.0

  • new function on ILLinePlot.Update(): allows more relaxed updates for X, XY or XYZ components
  • improved string output alignment for ILArray<float>
  • Legends for line plots: allow Visible properties to be used
  • PlotCube.Reset() now ignores hidden nodes which are Visible == false
  • more robust handling of ILPanel setup for GDI drivers (lazy initialization, removes OpenTK reference)
  • improved compatibility: Intel HD Graphics now better supported (f.e. on Optimus powered Laptops)
  • more robust disposal for ILPanel & OpenGL renderers (for switching back / forth between different renderers in VS extension)
  • fixed AMD OpenGL label rendering bug (issue #0191)
  • fixed a bug in ILPanel, preventing the BackColor property to be selected from within the designer
  • simplyfied default driver selection: OpenGL on all places except VS designer
  • removed default Auto-Dock:Fill for ILPanel (this is a breaking change!)
  • ILCamera: supports zoom (mouse wheel) with orthographic projection
  • ILCamera: supports Pan (right mouse click) for perspective projection and large objects
  • ILCamera: fixed a bug causing the synchronization of certain property changes getting lost
  • ILPanel can now timeout after specified number of ms elapsed. Subtrees can be excluded from timeouts and prioritized for rendering.
  • new plot type: ILImageSC
  • sum: allows summing dimension to be > number of dimensions
  • bugfix for Contourplots: contour lines has not been closed in certain cases
  • improved label position selection for contour plots
  • ILGroup: new optional constructor parameter: target, allows definition of rendering target for subtree
  • ILPanel: new option for picking details on shapes
  • OpenGL: more robust for legacy cards, compatible context fallback
  • switched to new installer
  • deprecated nuget packages
  • Quicksort: fixed race condition on multithreaded large single vector sorts
  • Quicksort: now recognized Settings.MaxNumThread setting; if 0 -> sorts single threaded always
  • MemoryPool: adjusted initial max default size: 350MB
  • Ultimate VS Extension: now supports EN and DE language packs
  • fixed AspectMode.MaintainRatios for Orthograpic views for ILCamera (not for ILPlotCube)

Changes in Version 3.3.3

  • XML driver: smaller output, reduced to 10 supported scene node base types
  • new ILMath functions: csvread, csvwrite
  • bugfix: expanding large arrays by index assignments failed to clear the new array in certain situations
  • bugfix: large surfaces may created corrupted colors (rel. to issue #000176)
  • bufgix: ILColorbar _completely_ disabled when no suitable colormap provider is found
  • bugfix: (issue #000171) corrupted memory pool in special multithreading setups, having multiple pools (double, float...) involved
  • bugfix: automatic detection of MKL native dependencies failed if path contained a '#' character
  • bugfix: (issue #000179) more robust handling of graphics in VS design mode, defaulting to OpenGL but falling back to GDI within common IDEs (via blacklisting), new Settings switch: ILNDefaultRenderer
  • switched to OpenTK nuget packages
  • ILPanel/all renderers clean up properly after Dispose() now -> allows utilization in dynamic environments (e.g. LinqPAD)
  • bugfix: issue #000185 ILMath.min returned wrong value when used with scalar values only
  • improved rendering of logarithmic axes: major/minor ticks/grid, log tick labels, automatic scaling
  • deprecated default tick creation methods on ILAxis.Ticks: TickCreationFunc, DefaultTickCreationFunc
  • added TickCreationFuncEx: gives more flexibility/context for custom ticks creation
  • improved text rendering: OpenGL; small fonts are now rendered crisp
  • got rid of unused dummy objects in ILScene (OpenGL renderers)
  • homogenized stipple pattern display for GDI and OpenGL renderers
  • allow ILSize to be used with != and ==; A.S == B.S is now working intuitively (issue #00186)
  • fixed axis tick-/ main label position for negative tick length (ticks inside plotting area; #00168)
  • Plot cube: axis tick labels now keep margin (ILAxis.TickLabelMargin) to tick lines
  • Axes: more robust creation of "few ticks" on smaller plots
  • bugfix: (issue #00189) InArrays were disposed off unintendedly after returning from a nested function in a multiple scoping setup

Changes in Version 3.3.2

  • bugfix in GDI driver: points smaller 3px did not render properly
  • all nodes are not markable by default (was: ILNode.Markable = true)
    • !! This is a potentially breaking change in the API! !!
  • DesignMode determination prepared for VS package hosting
  • general DesignMode detection for ILPanel simplyfied and made more robust
  • fixed an issue with signing ILNumerics in NuGet package builds
  • added array conversion functions from/to UInt64 element types
    • ILMath.convert<>(), ILMath.touint64() - needed for upcoming HDF5 API
  • work around a bug in Xamarin: 'is' operator struggles with generic array value types
  • added cumprod (feature request #105)
  • set ILPlotPanel internal -> will not show in Toolbox; use ILPanel instead!
  • bugfix: dynamic removal of multiple plots from ILScene now working correctly
  • bugfix: synchronization after dynamic reordering / removal / addition of groups now working correctly
  • bugfix: #172, corrupted memory pool due to a bug in eigSymm()
  • bugfix: custom legend item handling improved:
    • handling of legends in dynamic situations: adding / removing items, reconnecting plots to items etc.
  • bugfix: OpenGL buffers now correctly managed in dynamic trees, recreates once a shape changes its buffers
  • improved synchronization of shapes in scene graphs with shared buffers
  • improved legend layout: the padding property is now correctly recognized
  • moved ILNumerics.Drawing.ILColorbar -> ILNumerics.Drawing.Plotting.ILColorbar
  • ILSurface: 2 new constructors
    • provide Z, X and Y values individually (optional)
    • construct surface from lambda expressions (function evaluator)

Changes in Version 3.2.2

  • bugfix: frobenius norm for matrices, homogenized with vector input ('degree' == 0.0)
  • ccomplex (complex, fcomplex): allow for scalar arguments for one/both parameters
  • bugfix: spaces in path to ILNumerics.dll made AnyCPU resolution via PATH environment fail
  • new Settings switch: IsHosted - disable DesignMode checking for Drawing controls in hosted environments (VSTO, LinqPad, ...)
  • ILPanel in VSTO: auto disable DesignMode detection; no automatic "Fill" docking

Changes in version 3.2

  • ILNumerics targets AnyCPU – restructured all editions/ packages; see: http://ilnumerics.net/blog/?p=398
  • Name changed: ILScreenRect.DefaultBorderTag -> BorderTag
  • Name changed: ILScreenRect.DefaultFillTag -> BackgroundTag
  • Same names changed for ILColorbar ...Tag public static members
  • All above -> readonly
  • ILGroup.Childs -> deprecated + replaced by ILGroup.Children

Changes in version 3.1 

  • improved GDI renderer / web component: scan line triangles
  • added support for MKL.FreeBuffers() on Windows 32 / 64 bit (requested)
  • improved stability contour plots: level values outside range
  • CommunityEdition: new _unsigned_ project file provided
  • missing terrain.bin data file included
  • fixed issue: [#00140] some properties not configuable interactively
  • added code documentation on many places
  • hide designer visibility for unsupported ILPanel properties
  • fixed a threading issue in GDIDriver [#00108] and ILBMPBackBuffer
  • fixed GDI triangle depth buffering on 64 bit (reported)
  • ILOGLLabel now refreshes render queues after color changes
  • bugfix: ILColormap.Map now handles empty input parameters (reported)
  • plot cube: removed redundant group node reference attributes
  • made ILNode.IsSynchedNode available as protected property (requested)
  • increased PolygonOffset => 0.001f for lines (affects GDI Renderer)

Changes in version 3.0

  • new scene graph implementation, ILNumerics.Drawing reworked + now supports GDI+ driver and OpenGL 3.1 + scene based plotting implementation (old 2.0 API is no longer supported!)
  • bugfix: complete dimension array removal retains other dim sizes
  • managed matrix multiply: blocked algorithm, huge speed-up
  • all functions returning / expecting INDICES -> element type Int32 (sort, min, max, find, randperm, knn)
  • bugfix: subarray remove failed, for row vectors with insufficient dimensions specified
  • ILNumerics is now strongly named and runs in a medium trust environment

Changes in version 2.14a (patch)

  • reverted to unsigned assemblies due to several reported issues (signed assemblies will be provided in the pro edition seperately in the future)

Changes in version 2.14

  • bugfix in mvnrnd: certain input data led to dimension mismatch error
  • bugfix in ILSize.IndexFromArray, corrected OOB checks
  • Updated MKL: version 11.1 (Windows, large matrix eigSymm bugfix)
  • Community + Professional Edition: strongly named assemblies

Changes in version 2.13

  • implemented cross(A,B,normalize) for array columns
  • included Powershell module into nuget package, see: http://ilnumerics.net/blog

Changes in version 2.12

  • Added partial support for ILArray + ToString(), ILMath.convert and vice versa.
  • Added Complex[].ToILArray and ILArray.ToMSComplex Extension Methods
  • bugfix: expansion on emtpy arrays with first dim specified > 0 failed
  • bugfix: sort, on arrays with all but the last element sorted and no nans failed in certain cases do only exist for non-temporary arrays (all except ILRet???)
  • removed license manager and toolbox license control
  • introduced Community (GPL) and Professional Edition
  • removed free and evaluation licenses (-> Community Edition)

Changes in version 2.11

  • bug in var() fixed: in optimized scenarios may lead to inefficient memory handling
  • more robust license file handling for Free Trial Licenses

Changes in version 2.10

  • loading of license from resources more robust: Now works even in secondary app domain scenarios. Recommended: Licenses should be loaded from file if the application is not started within a managed application domain (what happens when started from a console f.e.). This bugfix makes the library ignore an empty AppDomain Resource Manager and try to load the license from a regular file instead.
  • parallelized randn()

Changes in version 2.9 (bugfix release)

  • fixes a bug in repmat: repmat did not handle insufficient dimension specifications for row vectors properly

Changes in version 2.8.4408.34136

  • increased speed of all binary and unary functions
  • improved vector expansion: more efficient implace operations
  • some ML functions 2..3 times faster (especially kmeans)
  • new optimized ML function: distL1 (user request)
  • more robust license file handling: ignoring common encoding issues
  • option to (re)load license file at runtime
  • option to embed license file into execution assembly
  • removed a common privilege issue with performance counter installation

Changes in version 2.7.4368.41400 (bugfix patch)

  • bugfix: qr in economy mode failed in certain situations 

Changes in version 2.7.4363.39308

  • bugfix: memory management had limited efficiency in certain situations
  • ILMath.check: provide "Default" parameter on input 'null'
  • reworked threading control for MKL
  • added support for 32 bit Linux, MKL, v.10.3
  • new Drawing example: LitSurfaceExample
  • enabled COM/Interop for ILNumerics

Changes in version 2.6.4343.42870

  • removed namespace ILNumerics.BuiltInFunctions -> ILNumerics
  • MachineParameterFloat -> MachineParameterSingle
  • reduced number of supported types
  • removed reference array feature -> lazy full clones instead
  • removed CreateReference(), ILArray.R
  • removed "shifted subarrays"
  • all binary operators receive arrays of same type only! (or System.Value type) 
  • types array creation: ILMath.create<>, .empty<>, .zeros<>
  • removed: ILArray.Diagonal -> use ILMath.diag
  • ILArray.GetShifted -> ILArray.Shifted
  • removed ILIterator
  • GetArrayForRead()/-Write()
  • improved array debugger display
  • ILCell (always) returns ILArrays!, scalars are unboxed
  • optional setting: implicitly cast logical array to bool with allall()
  • ILArray.Reshape does return reshaped array but does NOT alter self
  • binary functions (add, subtract... ) dimension SIZE sufficient to match (was:shape)
  • trailing singleton dimensions are not trimmed by default
  • renamed: ILMath.vector -> ILMath.vec, explicit element type overloads (double, float, int)
  • A[int[]] is not supported anymore due to conflicts with A[cell(1,2,3,4,5)]
  • A[string[]] is integrated into A[params BaseArray[]], reducing compiler overload resolution problems .. -> simply replace "new int[]" (double,string,..) with "new ILBaseArray[]"
  • A[null] -> empty !
  • new subarray specifications: cell(A,B,2,full,r(1,2)),r(0:end(A,1)-1),full):
    • ILMath.end allows simple calculations (via expressions)
    • ILMath.full selects full dimension
  • default vector orientation: column (specification by single dimension)
  • Reshape on arrays: removed params int[] overload, use ILMath.size(dim1,dim2,..) instead
  • meshgrid -> return arrays as cell
  • subarray index specifier can now be mixed between string and array format: A[":",i,end]
  • ILNumerics.Drawing is integrated into ILNumerics
  • removed ILNumerics.Drawing.Controls namespace -> ILNumerics.Drawing
  • changed function signatures for functions with multiple return parameters: removed ref keyword, incoming out parameters (if needed) are expected to be initialized already, f.e. ILMath.empty<>()
  • removed ILArray.zeros - use ILMath.zeros() instead
  • cart2pol removed result type. regular new ILNumerics API instead
  • ILMath.FFT renamed to: ILMath.FFTImplementation (VB compatibility)
  • ILMemoryPool: created generic equivalents for some functionality
  • ILMath... API: removed all ref parameter (according to new general API parameter type schema)
  • C# limited support: var and compound assignment operators are not supported anymore!!
  • removed namespace ILNumerics.Settings -> ILSettings renamed to ILNumerics.Settings
  • parallelized all internal functions
  • complex structs are now serializable
  • speed up repmat by factor 200
  • changed typed interface for ILCell: indexer return cells only, scalar cells are dereferenced, added GetArray, GetCell, GetScalar
  • homogenized interface for ILMatfile
  • added xor()
  • enabled virtual vector expansion on matching arrays for all binary operators (saving repmats)
  • added isempty, mod + % operator, std, var, cov
  • default orientation for vectors from elements: column vector
  • conf setting: CreateRowVectorByDefault, defaults to: false / 'column'
  • renamed ILDimension -> ILSize
  • renamed A.Dimensions -> A.Size (original is deprecated)
  • renamed A.D[] -> A.S[] (orig. is deprecated)
  • added pif (single prec. pi constant)
  • added epsf (single prec. eps constant)
  • added nanmean(), nansum()
  • added license management
  • reworked all examples
  • provided 64 bit binaries (MKL)
  • primary support for MKL now, options for FFTW3 and ACML kept
  • implemented new memory management
  • simplyfied ILNumerics.Drawing namespace
  • removed support for ILFigure, ILControl
  • removed ILNumerics.BuiltinFunctions namespace; moved ILMath -> ILNumerics
  • several new settings -> ILSettings class
  • implemented windows performance counters for memory pool
  • windows performance counter for thread pool measures

Purchase a License:

Buy ILNumerics

Download ILNumerics:

30 Days Trial