FreeAML is an easy-to-use, parallel applied mathematics library written in C++. It boasts native integration with OpenMP and can therefore automatically use multiple cores to accelerate its implemented algorithms (e.g. matrix multiplication, vectorial dot product etc.) on shared-memory architectures.
FreeAML offers basic data structures tailored for mathematical applications (vectors and matrices) as well as:
Integrating freeAML into your project can be done in minutes since it is a header-only library. All you need to do is download the sources and include the desired header files into your project.
All code from this project is licensed under the FreeBSD license. See the
LICENSE
file for
more information.
The best way to learn how to use freeAML is by looking at its unit tests. Each unit test is written in a very simple manner and is a self-contained example of how a certain tool (e.g. a linear system solver) can be used. The following list shows the available data structures and algorithms in the library, with links pointing to their associated unit tests:
Data structures
Linear system solvers
Linear least-squares solvers
Matrix factorization algorithms
FreeAML can be downloaded with the following command:
git clone https://github.com/dassencio/freeaml.git
No installation is required: users can simply include the desired header files from freeAML in their program sources and start focusing on what matters to them.
If you wish to benefit from the native parallelization with OpenMP, make sure
that it is installed on your system (if you are using a popular Linux
distribution such as Ubuntu, it should already be there). Also, don’t forget
to tell your compiler to link your application to the OpenMP library
(for instance, with gcc
, you must add the -fopenmp
option).
To compile and run the unit tests, go to the directory where you cloned the
freeAML sources, create a directory called build
there, enter it and then run
the following commands in sequence:
cmake -DUSE_OPENMP=ON ..
make
./run-tests
If you do not wish to use OpenMP, simply replace ON
with OFF
on the command
above.
FreeAML is thoroughly documented using the Doxygen format. To generate the
documentation as an HTML document, go to the directory where you cloned the
freeAML sources, create a directory called build
there, enter it and then run
the following commands in sequence:
cmake ..
make doc
This will create a subdirectory called html
containing an index.html
file.
Open it on a browser to navigate through the documentation of the library
classes and functions.
Diego Assencio / diego@assencio.com