I've changed to Eigen and made a pull request to give anyone a chance to comment:
https://bitbucket.org/fenics-project/dolfin/pull-request/53/replace-armadillo-with-eigen3 Garth On 25 September 2013 20:33, Garth N. Wells <[email protected]> wrote: > On 25 September 2013 20:13, Joachim Berdal Haga <[email protected]> wrote: >> FWIW, I have only good experiences with Eigen. > > Good to know. > >> 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]. > > I'm very reluctant to consider Blaze. I would prefer a more > established library with an open development model, and if it's a > dependency it must be available as a package on major Linux > distributions, and in Macports and Homebrew. Eigen ticks these boxes, > and I believe Blaze falls down on each point. > > Moreover, Eiegn provides other functionality that could be useful, > e.g. sparse linear algebra. > >> The simplicity of header-only use is worth a lot to me. >> > > Me too. It's a major motivation for considering a change. > > Garth > >> [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 >> _______________________________________________ fenics mailing list [email protected] http://fenicsproject.org/mailman/listinfo/fenics
