to be ranked.
Note: if
stride is positive,
vec should point at the first data object; otherwise
vec should point at the last data object. It should be noted that
must be greater than or equal to size_of (data objects), for correct ranks to be produced. However, the code performs no check for violation of this constraint.