|Re: [eigen] sub-matrix extensions|
[ Thread Index |
| More lists.tuxfamily.org/eigen Archives
On Fri, 6 Feb 2009, Gael Guennebaud wrote:
c) here I have a use case where runtime strides are needed, but do
you think we also need compile-time strides ? (probably yes)
d) do you think bidirectional strides might be useful ? eg:
mat.stride(2,3) (picks the intersections of all even rows and k*3
I have some Matlab code that uses A(1:2:end, 1:2:end) = ... which would be
A.stride(2,2) = ... in your notation. In the end, we got rid of it by
redefining A to be a permutation of the original A, so it was not
essential, but it was useful in developing the code / maths.
As for c), I'm not sure what the question is. I guess with compile-time
strides you mean all the template tricks so that you write A.stride<2,2> .
In my case, 2 is a compile-time constant (obviously), so this could be
done. As I understand it, the use of the templates is that you can do
optimizations at compile time. Is there a possible optimization here? In
my case, it wouldn't be very useful since we could get rid of the double
strides (indeed, the fact that double strides are slow in Matlab was one
of the reasons we re-defined A).