Re: [eigen] Eigen "views"

[ Thread Index | Date Index | More Archives ]

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'd like to suggest that the "right way" might also include some interoperability with the PermutationMatrix class. I could see that getting a lot more complicated, of course, when it comes to permuting the rows or columns of a matrix, but it's essentially just a different syntax for the same operation.


Jim Bosch

Mail converted by MHonArc 2.6.19+