Re: [eigen] bug in data() on col/row

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


2009/8/30 Benjamin Schindler <bschindler@xxxxxxxxxxx>:
> Hi
>
> Well, I know that this was my expectation - and I'm fully aware that this
> code is kinda bogus. But on the other hand, writing
>
> somematrix.row(2).data() does give the expectation that you get that row
> data (as this is what the code is trying to tell me).
> That's why I wrote that mail - I think that code is unsafe and can lead to
> "unexpected" behaviour and if there is something Eigen can do about this, it
> should be done

Ah, OK, I understand your point. Sorry I didn't get it the first time.

But what can Eigen do, when it sees data() being called on a
non-memory-contiguous block, such as a row in a column-major matrix?

Should it just forbid that (with an assertion) ?
That's open for discussion. There is an argument against, though:
there's a use case for using data() to retrieve the address of the
first coefficient in the row, and then iterate by incrementing this
pointer by the size of a column, to traverse the row.

Benoit



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