# 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.