There seems to be a lot of confusion with the rank and order functions; They are not the same but inverse of each other.

For a vector x, order(x) is a permutation such that x[order(x)] is ordered, whereas rank(x) simply shows the ranks of the entries of x.

As a result, it is always true that

`rank(x)[ order(x) ] = order(x)[ rank(x) ] = 1:length(x)`

For example, if

```
x = c(8,9,7)
d = order(x) # 3 1 2
r = rank(x) # 2 3 1
# r[ d [ k ]] = d[ r[k ]] = k for k = 1,2,3.
```