Re: [eigen] Recursion and block matrices

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


Thanks for explaining Stride<0,0>.

A few weeks, ago, when I read Gael's email, I was already sufficiently overwhelmed with Eigen, and did not want to get involved in the Devel branch. Today I took a look, and the Ref certainly seems related, but I can't say that I understand it well enough to use it. It seems that the inner stride must be 1?

What I am aiming for is conceptually simple, and it is allowing me to learn the Eigen class hierarchy well enough to implement sub-matrices that will be less efficient as expressions, but will not have infinite recursion, and will share the same memory as the original matrix. In a nutshell, a sub-matrix is a Map of a rectangular subset of a PlainObject.

Will let you guys know when I am done. I'm sure I will not have done this in the best way, and any suggestions you have for improvement will be taken to heart. I hope will not have too many question to bother you along the way. If you have any other ideas for defining submatrices with the qualities I described above, please shout. Although I enjoy the challenge, I would not classify this as fun, and am looking forward to using this functionality.

Thanks, again,
Norm



On 09/18/2012 08:59 AM, Christoph Hertzberg wrote:
On 18.09.2012 17:51, Norman Goldstein wrote:
I figured this one out by decomposing the C++ statements until the
compiler message was more specific.
It turns out that the compiler was being asked to match Stride<0,0> with
Stride<-1,-1>.  The former is
defaulted in some declarations, while the latter is for dynamic stride.
When would one want to use
Stride<0,0>?

Stride<0,0> means "natural" stride, so colstride is number of rows, rowstride is 1 (assuming colmajor matrices). Have you yet tried to use the Ref<MatrixXd> class, as Gael suggested some mails ago? Or are you implementing this more for the fun of it?

Christoph


On 08/28/2012 01:01 AM, Gael Guennebaud wrote:

With the devel branch you might try:

void incr(Ref<MatrixXd> mat) {

// no cast needed
...

}







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