Re: [eigen] Std Vector again |
[ Thread Index | Date Index | More lists.tuxfamily.org/eigen Archives ]
Keir,
If you are already using Boost, I suggest sidestepping the Eigen/std::vector quandary and instead using the vector implementation in Boost.Interprocess for Eigen types. Although it (currently) lives in Interprocess, it's a fully generic implementation of STL vector that fixes the resize flaw and has some other niceties such as support for move semantics.
Current C++ may not have templated typedefs, but you can get some of the same benefits from a simple meta-program:
#include <boost/interprocess/containers/vector..hpp>
template<typename T>
struct AlignedVector
{
typedef boost::interprocess::vector<T, Eigen::aligned_allocator<T> > type;
};
AlignedVector<Vector4f>::type my_vec;
Cheers,
PatrickOn Fri, Jun 26, 2009 at 10:37 AM, Benoit Jacob <jacob.benoit.1@xxxxxxxxx> wrote:
2009/6/26 Benoit Jacob <jacob.benoit.1@xxxxxxxxx>:
> What you want here is EIGEN_DONT_ALIGN but this option is onlyAnd by the way, you can control that on a per-matrix basis by using e..g.
> available in the development version.
>
> In Eigen 2.0.3, to disable alignment, you'll have to edit
> Eigen/src/Core/util/Macros.h and at line 44 replace
>
> #if !defined(__GNUC__) || defined(__i386__) || defined(__x86_64__) ||
> defined(__ppc__) || defined(__ia64__)
>
> by
>
> #if 0
Eigen::Matrix<float,4,1,Eigen::DontAlign>
instead of
Eigen::Vector4f
Cheers,
Benoit
Mail converted by MHonArc 2.6.19+ | http://listengine.tuxfamily.org/ |