Legacy Issue Number: 18575
I don't think that Sort is defined the best way in VSIPL.
Why spec doesn't define create function? Such function will let user to
allocate additional memory which are required by some sorting methods.
Why not to define out-of-place sort?
If I work on 64-bit system, sort array of 32-bit FP values and need index
vector, I'll get 64-bit indices which are not supposed to be that long.
This is because last argument of sort function is
const vsip_vview_vi *index and
_vi means (unsigned long int) i.e. 64-bit elements.
In the sort I implemented for AVX I permute data in vector registers and
apply same permute to the indices which occupy other vector register.
It's OK if function has to produce 32-bit indices, but it will be wrong
when I have to shuffle 64-bit values.
This last comment is applicable to other functions as well - index vector
on 64-bit systems doesn't have to be 64-bit value because data arrays
today are not huge yet.
Reported: VSIPL 1.4 — Mon, 25 Mar 2013 04:00 GMT
Updated: Fri, 6 Mar 2015 20:57 GMT