Re: [eigen] Eigen "views"

[ Thread Index | Date Index | More Archives ]


Many thanks for the fast reply! :) We'll look at the Minor class and try to come up with a draft implementation for a View. We'll definitely need your guidance after that. It would be great to get this into Eigen as it would benefit a lot of projects.

Point Cloud Library (PCL) -

On 08/15/2011 12:24 PM, Benoit Jacob wrote:
(Disclaimer: I've been away for a while so I might not be up to date.
If Gael contradicts me, listen to him)

This has been asked for many times, and I think there was consensus
that this would be a welcome addition. It also isn't hard to
implement. It's just that nobody has actually done the work yet :)

If you want to do it yourself, the right Eigen way to do it is to add
a new expression class, holding references to the original vector and
to the integer vector of indices. For a simple expression class to
start from as an example, look at the Minor class in Eigen2Support,
it's as easy as it gets. The core part of the implementation would be
the coeff() accessor methods in this class, and they would look like:

    CoeffReturnType MyViewExpression::coeff(Index i)
       return m_originalVector.coeff(m_indicesVector.coeff(i));

I'll be happy to provide guidance.


2011/8/15 Radu B. Rusu<rusu@xxxxxxxxxxxxxxxx>:
Hi guys,

We were wondering whether there was ever a discussion about implementing
"views" into Eigen. Here's an example:

Eigen::Vector<dynamic, float>  vector1, vector2;
vector1 = defineSomeDataSomehow ();
Eigen::Vector<dynamic, int>  idx = defineSomeIndicesSomehow ();
vector2 = vector1 (idx);
assert (vector2.size () == idx.size ());

Basically addressing data without copies.

Point Cloud Library (PCL) -

Mail converted by MHonArc 2.6.19+