Main Content

sorted

Locate sites with respect to mesh sites

Syntax

pointer = sorted(meshsites,sites)

Description

Various commands in this toolbox need to determine the index j for which a given x lies in the interval [tj..tj + 1], with (ti) a given nondecreasing sequence, e.g., a knot sequence. This job is done by sorted in the following fashion.

pointer = sorted(meshsites,sites) is the integer row vector whose j-th entry equals the number of entries in meshsites that are ≤ ssites(j), with ssites the vector sort(sites). Thus, if both meshsites and sites are nondecreasing, then

meshsites(pointer(j)) ≤ sites(j) < meshsites(pointer(j)+1)

with the obvious interpretations when

pointer(j) < 1    or    length(meshsites) < pointer(j) + 1 

Specifically, having pointer(j) < 1 then corresponds to having sites(j) strictly to the left of meshsites(1), while having length(meshsites) < pointer(j)+1 then corresponds to having sites(j) at, or to the right of, meshsites(end).

Examples

The statement

sorted([1 1 1 2 2 3 3 3],[0:4])

will generate the output 0 3 5 8 8, as will the statement

sorted([3 2 1 1 3 2 3 1],[2 3 0 4 1])

Algorithms

The indexing output from sort([meshsites(:).',sites(:).']) is used.