Eigen 3 is a C++ template library for linear algebra, matrices, vectors, numerical solvers and related algorithms.
Eigen is very easy to use. For example, to multiply two matrices:
Matrix2d a, b;
a << 1, 2, // Fill the data
b << 5, 6,
Matrix2d res = a*b; // Just multiply them using *
Eigen package is a wrapper of Eigen library, updated to stable release 3.3.9 (04/12/2020). It includes the library and helper functions to integrate better Eigen with U++. Starting from the 3.1.1 version, it is licensed under the MPL2, which is a simple weak copyleft license. Common questions about the MPL2 are answered in the official MPL2 FAQ.
Bazaar/Eigen package includes a sample package (Eigen_demo) to ease its use for U++ users. It has many samples from Eigen library and nonlinear equation solving and optimization like Eckerle4 and Thurber (see the graphs). To simplify access to these features, simple functions have been added.
It also includes a simple FFT (Fast Fourier Transform) sample.that:
Generates a data series composed by three sinusoidal series of amplitude 2, 5 and 30, and frequencies 1/50, 1/30 and 1/10 Hz:
f(t) = 2*sin(2*PI*t/50 - PI/3) + 5*sin(2*PI*t/30 - PI/2) + 30*sin(2*PI*t/10 - PI/5)
Gets the FFT
Filters the frequencies between 1/25 and 1/35 Hz
Gets the filtered data series
Saves both FFT and series
Eigen packages have been prepared by dolik.rce and koldo.