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

Reply via email to