Armadillo 12.8.1 is a bug fix release.
Download: https://arma.sourceforge.net/download.html
Changes since 12.8.0:
- workaround in norm() for yet another bug in macOS accelerate framework
Ensmallen 2.21.1 has bug fixes and feature enhancements.
Download: https://ensmallen.org/
Ensmallen is a C++ numerical optimisation library (L-BFGS, SGD, CMA-ES, etc)
Changes since version 2.20:
- fix numerical precision issues for small-gradient L-BFGS scaling factor computations
- fix return types of callbacks
- clarify return values for various callback types
- cleanup for printing optimization reports
- ensure the tests are built with optimisation enabled
Armadillo 12.8 contains speedups and feature enhancements.
Download: https://arma.sourceforge.net/download.html
Changes since 12.6:
- faster detection of symmetric expressions by pinv() and rank()
- expanded shift() to handle sparse matrices
- expanded conv_to for more flexible conversions between sparse and dense matrices
- added cbrt()
- more compact representation of integers when saving matrices in CSV format
Armadillo 12.6.7 is a bug fix release.
Download: https://arma.sourceforge.net/download.html
Changes since 12.6.6:
- fix for saving sparse matrices as CSV files
Armadillo 12.6.6 is a bug fix release.
Download: https://arma.sourceforge.net/download.html
Changes since 12.6.5:
- fix eigs_sym(), eigs_gen() and svds() to generate deterministic results in ARPACK mode
Armadillo 12.6.5 is a bug fix release.
Download: https://arma.sourceforge.net/download.html
Changes since 12.6.4:
- fix for corner-case bug in handling sparse matrices with no non-zero elements
- various fixes in the documentation
Ensmallen 2.20 has bug fixes and feature enhancements.
Download: https://ensmallen.org/
Ensmallen is a C++ library with many numerical optimisation algorithms, built on top of Armadillo.
Changes since version 2.19:
* LBFGS optimiser: avoid generation of NaNs, and add checks for finite values
* implementation of Active CMAES optimiser
* CNE optimiser: fix test tolerances
* rename SCD optimiser to CD
We are proud to announce the initial release of Bandicoot, a C++ GPU library for linear algebra and scientific computing.
Bandicoot aims for API compatibility with Armadillo, using GPUs for acceleration.
Backends for CUDA and OpenCL are provided.
* Main site: https://coot.sourceforge.io
* Documentation: https://coot.sourceforge.io/docs.html
* Downloads: https://coot.sourceforge.io/download.html
* Git repo: https://gitlab.com/conradsnicta/bandicoot-code/
mlpack 4.0 has been released!
mlpack is a fast C++ machine learning library.
- download: https://mlpack.org/
- git repo: https://github.com/mlpack/mlpack
This release has many improvements, with a focus on improving ease of use.
New article about PyArmadillo, published in the Journal of Open Source Software:
- DOI: https://doi.org/10.21105/joss.03051
- code: https://pyarma.sourceforge.io/
PyArmadillo is a linear algebra library for the Python language, with the aim of closely mirroring the programming interface of the widely used Armadillo C++ library, which in turn is deliberately similar to Matlab. PyArmadillo hence facilitates algorithm prototyping with Matlab-like syntax directly in Python, and relatively straightforward conversion of PyArmadillo-based Python code into performant Armadillo-based C++ code.
There is a new article about the ensmallen numerical optimisation library, published in the Journal of Machine Learning Research (JMLR):
Abstract: https://jmlr.org/papers/v22/20-416.html
PDF: https://jmlr.org/papers/volume22/20-416/20-416.pdf
Code: https://ensmallen.org
The ensmallen library is built on top of Armadillo, and provides a flexible C++ framework for mathematical optimisation of user-supplied objective functions. Many types of objective functions are supported, including general, differentiable, separable, constrained, and categorical. A diverse set of pre-built optimisers is provided, including Quasi-Newton optimisers and many variants of Stochastic Gradient Descent. The underlying framework facilitates the implementation of new optimisers. Optimisation of an objective function typically requires supplying only one or two C++ functions. Custom behaviour can be easily specified via callback functions. The library is distributed under the permissive BSD license.
CARMA v0.5 has been released: https://github.com/RUrlus/carma/releases
CARMA (by Ralph Urlus) provides converters between Armadillo matrices (C++) and Numpy arrays (Python).
This facilitates rewriting performance critical parts of Python programs in C++.
PyArmadillo is a streamlined linear algebra for Python, with emphasis on ease of use.
https://pyarma.sourceforge.io
PyArmadillo v0.500 contains new features, bug fixes and enhancements.
Additionally it can now be easily installed via pip:
pip3 install --user pyarma
Our latest pre-print, showing some of behind-the-scenes optimisations for solving sytems of linear equations, as implemented in Armadillo.
- Abstract: https://arxiv.org/abs/2007.11208
- PDF: https://arxiv.org/pdf/2007.11208.pdf
Our journal article on sparse matrices in Armadillo has just been published:
https://doi.org/10.3390/mca24030070
C. Sanderson, R. Curtin.
Practical Sparse Matrices in C++ with Hybrid Storage and Template-Based Expression Optimisation
Mathematical and Computational Applications, Vol. 24, No. 3, 2019.
There is a new paper about sparse matrices in Armadillo, presented at the International Congress on Mathematical Software:
http://arma.sourceforge.net/arma_spmat_icms_2018.pdf
There is a new overview article about Armadillo, published in the Journal of Open Source Software:
http://arma.sourceforge.net/armadillo_joss_2016.pdf