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

Reply via email to