Re: [eigen] On a flexible API for submatrices, slicing, indexing, masking, etc.

[ Thread Index | Date Index | More Archives ]

Sorry somehow I missed this earlier email...

1. The word "range" in the C++ context​ often means iterator ranges. Iterators copies the pointer usage,  you can ++ until it equals the end of the range, and more importantly you can dereference them. The range we are discussing are range of indices. It might be a good idea to distance away from the (iterator) range connotation.

2. If we really want to be nerdy, mathematician has precise definition of spans, as in  "linear span" and "convex span". Convex span is sort of exactly what we mean when we write span(first, last). So there you go... 

Not really, a convex span is related to the convex-hull of a set, and a linear span is the subspace defined by a set of vectors v_1,..,v_n. It can also be defined as the range of the function f(x_1,..x_n)=sum_i x_i v_i. 

My bad that my wording seems to categorize linear span and convex span as the same animal. I didn't mean that.

What I meant was that the definition of "convex span" fits (loosely)  with our version of span, given that the convex-hull of two points on the real line is simple the line segment connecting the two.

The mathematical notion that is equivalent to what we call range or span here is simply an 'arithmetic progression', also called an 'arithmetic sequence'. So if we really want to avoid confusions/collision with other "range" and "span" in the C++ standard (the span in GSL is likely to be adopted soon), we could think about a contraction like "aseq"?

​aseq or even just seq ​is not a bad name.


Mail converted by MHonArc 2.6.19+