## IGLib README

IGLib.NET (Investigative Generic Library) is a set of utility libraries that are particularly suited for development of technical applications.

The system has been designed and developed by Igor Grešovnik, who set up its foundations in 2006 and is leading its development. In longer term, the library is intended for distribution as free open source under a BSD-like license. However, the library will not be open for public immediately because the author wants to achieve a certain level of maturity first and stabilize library development within a smaller group of dedicated developers. Hopefully the library will be released as free open source library by the end of 2015. Before this happens, groups and individuals can join development or usage of the library by individual agreement with the principal author. Up to now, a small number of companies have been using the library for developing applications. The author is open for collaboration but would like to retain a good control over development until a certain level of maturity is reached. He believes that such position will be beneficial for future users and developers.

Since 2011, the library has been used by the Laboratory for Multiphase Processes of the University of Nova Gorica, and by the Laboratory for Advanced Materials Systems of the Centre of Excellence for Biosensors, Instrumentation and Process Control, where it is used as base library for development of applications in the field of neural networks and optimization. These groups use the code under a customized license agreement that allows free use of the binaries in order to create derived products.

IGLib contains some basic utilities like those for parsing of strings, generic I/O utilities, a couple of utilities for building GUI, a numerical library, 2D and 3D graphics modules, a parallel computing module, application framework featuring a layered interpreter system, and other components. It aims at providing a well designed base library for developnent of complex numerical and other technical applications. Parts of IGLib have also been used in other areas such as a system for managing a histological laboratory or large scale invoicing support system.

Historically, the initial motivation for development of the library arose from the needs to have a good base library for development of complex optimization software, and development was first concentrated around re-implementation of parts of IOptLib. However, the library was planned in a much broader sense since the very beginning of its existence. For more information, check the library home page at

http://www2.arnes.si/~ljc3m2/igor/iglib/,

or check code documentation at

http://www2.arnes.si/~ljc3m2/igor/software/codedoc/generated/iglib/html/index.html.

## External Libraries

This library depends on a number of external free open source libraries. Authors of the code are grateful to all developers that invested their work to develop these libraries and who made them open and accessible to the public.

The following external libraries are used:

- Math.Net Numerics, an excellent scientific library written entirely in C#, development lead by Christoph Rüegg. Created by merging two predecessor libraries, the Math.Net Iridium and the dnAnalytics.
- Math.Net, a scientific library written entirely in C#. Iridium and Neodym libraries were used from this project before Iridium merged with dnAnalytics into Math.Net Numerics. Now the latter library is used.
- ZedGraph, a flexible charting library for .NET.
- NPlot, an easy to use 2D plotting library.
- Activiz, C# wrappers for the VTK 3D graphics library.
- Aforge.Net, a framework library for development of neural network-based application.
- Accord.Net, an extension of the Aforge.Net framework.
- ParticleSwarm project of Guinther M. Foidl, an implementation of a particle swarm minimization algorithm.
- ALGLIB, a numerical analysis and data processing library. Small portions of an old version are used that were licensed under a more permissive license (now the library is under the GPL).

Please visit the home pages of these great libraries (just follow the links above) and consider whether you can support their development in some way. Check also the license agreements for these referenced libraries for precise conditions for using the libraries.