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?

Garth
_______________________________________________
fenics mailing list
[email protected]
http://fenicsproject.org/mailman/listinfo/fenics

Reply via email to