## delphi matrix library

### matrix functions exposed by a matrix class/interface

* Base matrix operations: addition, subtraction, multiplication, scaling

* Special functions for elementwise element handling

* Tons of functions for easy to use element and initialization functionality

* Auxilary functions for sum, mean, variance, min/max and value abs

* Matrix sorting and Median calculation

* Simple Convolution

* Matrix inversion and Determinant calculation

* QR, LU and Cholesky decomposition

* Singular value decomposition

* Hessenberg decomposition

* Eigenvalue calculation

* Pseudoinversion

* Least squares equation solving for overdetermined matrices

Except for the non symmetric Eigenvalue computations there exists assembler optimized,
cache oblivious and multithreaded versions of the algorithms as well as plain Delphi versions. The
optimizations are not only for 32 but also for 64 bit compilers (x86 and x64
optimizations). For most of the algorithms there also exists multithreaded versions
the utilize more computational power. All functions have been optimized for SSE and AVX and FMA instructions sets.

### implemented subspace methods

* PCA - one pass and incremental versions.

* PCA - robust reconstruction methods

* Kernel PCA

* Independent component analysis

* Non negative component analysis

* Canonical correlation analysis

* Partial least squares

* Dynamic time warping and simple correlation

* t-Distributed Stochastic Neighbor Embedding

* Singular Spectrum Analysis

### auxilary functionality

* Persistence system (reading and loading of the above objects)

* Random number generation class that utilizes hardware instraction RDRAND,
the Mersenne Twister algorithm as well as operating system specific random number
generators and of course the standard delphi PRNG. New in the family are ChaCha (Salsa20) based random numbers
which are optimized for SSE and AVX instruction sets.

* Operating system depending implementation of different multithreading pools.

* Expectation Maximization.

* Robust B-Splines

* Distance calculation from a reference point cloud: Mahalonobis distance, L1 distance from Geometric Median and Eucledian distance.

* Polynom root finding using the eigenvalue method or Laguerre's method

* Function root finding in a given interval using Brents and Newton/Raphons's method.

### statistics box

* Correlation: Pearson (standard) and rank based Spearman)

* Statistic Tests: F Test, Student T, Chi-Square, Kolmogorov Smirnov

* Some PDF functions for visualization.

* Beta, Gamma functions

* Histogram functions

* A reusable class with persistence functionality

The library is compatible with at least Delphi2007 to the latest Delphi as well as Freepascal IDE's like CodeTyphoon or Lazarus. The library also includes compatibility with MacOs, 32 and 64bit compilers. There are also CodeTyphoon project files that allows to compile for 64bit Linux.

## delphi artificial intelligence library

### implemented base algorithms

* Decission stub

* Fisher Linear Discriminant Analysis (LDA) including robust classification

* Naive Bayes

* kMeans

* C4.5 decission trees

* Support vector machines

* Radial basis functions

* Feed forward neural networks

### ensemble methods

* Bagging

* Adaboost

* GentleBoost

* Boosting cascade

### additional implementations

* incremental image feature extractions

* adaboost implementation including the incremental image features

* Haar features

* persistence handling

The library is utilizes the matrix library but is only compatible with Delphi and the win32 platform.

## delphi image helper library

* Delauny triangulation

* Base image filters

* Image warping based on triangulations

* Procrustes analysis

* Thin plate spline warping

* Active Appearance Models

* Persistence handling

The library is utilizes the matrix library but is only compatible with Delphi and
the win32 platform.