The documentation for vsearch indicates it returns the index of the "least larger member". This doesn't seem to be standard nomenclature (cf. http://en.wikipedia.org/wiki/Least-upper-bound_property).
I can easily parse its meaning as "the smallest element of the set which is larger than the searched-for element". That's not what vsearch is returning, however. It returns the smallest element of the set which is larger or equal to the searched-for element.
pdl> $xs = sequence(10); say $xs->index( vsearch( pdl( 4.5, 8), $xs ) )
Note the "8", rather than "9".
So, while "least larger member" is very similar to "least upper bound", it isn't using the exact magic words, so I suggest clarifying to documentation to say
Returns for each value of $vals the index of the smallest member of $xs which is greater than or equal to it. $xs must be in increasing order.
While the term "least upper bound" may be well defined mathematically, it's not obvious from its words that the comparison includes equality. I think being explicit about what is happening would be much clearer, an approach backed by my random sample of one colleague.