Am 19.11.2012 um 10:51 schrieb Michael Lehn <[email protected]>:

>> 
>> I am working on testcases for the GSL BLAS and CBLAS functionality and my
>> testdata also includes negative stride for vectors.
>> 
>> Is there a specific reason why the GSL implementation does not allow
>> negative stride (ATLAS also does not consider this, MKL does)?
> 
> ATLAS also allows negative strides.  Otherwise it would not pass the BLAS
> test suite.
> 
> When I countered negative strides in BLAS I was confused by its meaning: In
> my expectation having a vector of length n, data pointer X and a stride
> of -1 then it would have references elements
> 
> *X, *(X-1), *(X-2), ..., *(X-n+1)
> 
> However, in BLAS a negative stride just means that one has to traverse the 
> elements
> in reverse order, i.e.
> 
> *(X+n-1), *(X+n-2), ..., *(X+1), *X
> 
> But the elements that are actually referenced are the same you would have for
> stride 1=abs(-1), i.e.
> 
> *X, *(X+1), *(X+2), ..., *(X+n-1)

Long story short: if you have a vector with stride incX then the i-th element 
is always stored in

*(X + abs(incX)*i)

Reply via email to