FWIW, I have only good experiences with Eigen. From what I gather, Blaze is very fast but also limited in that it requires both matrices and views into them to be memory aligned, which means arbitrary matrix views are not possible [1]. The simplicity of header-only use is worth a lot to me.
[1] http://listengine.tuxfamily.org/lists.tuxfamily.org/eigen/2012/08/msg00050.html -j. On 19 September 2013 11:30, Simone Pezzuto <[email protected]> wrote: > I would recommend these documents: > > > http://scicomp.stackexchange.com/questions/351/recommendations-for-a-usable-fast-c-matrix-library > > http://code.google.com/p/blaze-lib/wiki/Benchmarks > > Blaze is a new library and it exploits both expressions templates at small > sizes > and blas/lapack backend at large sizes (both static and dynamic sizing). > > Eigen development has slowed down over the last 3 years. I like the idea > of having a self-container > and only-headers library, but sometimes reinventing the wheel is not a > good (e.g. emulate blas/lapack). > Also, because some aliasing issues, it is delicate to include eigen > objects as class attributes. > > I can confirm that installing Armadillo is painful if you don't want to > patch CMakeLists.txt. > > > Probably Eigen is still a good choice, but I would take a look at Blaze > too. > > > Simone > > > > > 2013/9/19 Anders Logg <[email protected]> > >> On Thu, Sep 19, 2013 at 10:14:43AM +0100, Garth N. Wells wrote: >> > I've been thinking about switching to Eigen >> > (http://eigen.tuxfamily.org/) from Armadillo >> > (http://arma.sourceforge.net/) in DOLFIN to handle dense matrix/vector >> > problems. The reasoning is: >> > >> > 1. Armadillo is a pain to install (getting it to link properly to BLAS >> > being the main problem) >> > 2. Eigen header only, but can link to BLAS if desired >> > 3. Eigen uses row-major or column-major storage, whereas Armadillo >> > offers only column major. Column-major makes interaction with the >> > GenericTensor::get/set functions clumsy with Armadillo, often >> > requiring copying (this is the most pressing reason for me proposing a >> > change now). >> > 4. Eigen has some good serial sparse linear algebra support >> > >> > Performance wise, from the net there doesn't seem to be much in it. >> > Armadillo does generally requires a good BLAS library to get good >> > performance whereas Eigen doesn't. Eigen has a richer API. Longer >> > term, we could remove the uBLAS interface (which is slow) and >> > implement Eigen as a linear algebra backend. >> > >> > Any opinions/experiences, or is anyone attached to Armadillo? >> >> No objections. >> >> -- >> Anders >> _______________________________________________ >> fenics mailing list >> [email protected] >> http://fenicsproject.org/mailman/listinfo/fenics >> > > > _______________________________________________ > fenics mailing list > [email protected] > http://fenicsproject.org/mailman/listinfo/fenics > >
_______________________________________________ fenics mailing list [email protected] http://fenicsproject.org/mailman/listinfo/fenics
