Re: [eigen] Taking advantage of C++11 features in Eigen

[ Thread Index | Date Index | More lists.tuxfamily.org/eigen Archives ]


On 12.02.2014 12:21, Nicola Gigante wrote:

Il giorno 11/feb/2014, alle ore 22:49, Benjamin Schindler <bschindler@xxxxxxxxxxx> ha scritto:
I'd like to add one particular point here: new POD support (Plain old data). It would be grat if a vector of Vector3f could be optimized using the POD optimizations

Not sure how much exactly this would improve things (but I'm not the C++11 expert). I assume it mostly allows more efficient memmove/memcopy operations?

In the constructor we currently make some checks of template parameters and where necessary of alignment. I assume the template parameter checks could/should be replaced by true static assertions, e.g. similar to the way BOOST_STATIC_ASSERT is defined. This would also save some NOP calls from the constructors. I just added a bz-entry for that:
http://eigen.tuxfamily.org/bz/show_bug.cgi?id=742
However, the alignment checks will still be necessary (not for Vector3f, though).

Of course the first thing to do is to provide Eigen with a set of preprocessor macro to abstract compiler support.

That is definitely a thing which could be improved. Macros.h already has a starting point for this:
https://bitbucket.org/eigen/eigen/src/90f8b868e6e2/Eigen/src/Core/util/Macros.h?at=default#cl-99

But there are some places left which make their own manual checks. E.g. MathFunctions.h does:
    #if (__cplusplus >= 201103L) && !defined(__CYGWIN__)
instead of something like #ifdef EIGEN_HAS_LOG1P.

Then the first one I’d like to see is certainly move semantics…

As said before, this is already implemented.

Christoph


--
----------------------------------------------
Dipl.-Inf., Dipl.-Math. Christoph Hertzberg
Cartesium 0.049
Universität Bremen
Enrique-Schmidt-Straße 5
28359 Bremen

Tel: +49 (421) 218-64252
----------------------------------------------



Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/